Ejemplo n.º 1
0
    def initUI(self):
        self.setWindowTitle('GrMap')
        self.setGeometry(10, 30, 800, 700)
        self.grid = QGridLayout(self)

        # Views ************************************
        self.mapview = QGraphicsView(self)
        self.mapview.setStyleSheet("border: 0px; background: black")
        self.grid.addWidget(self.mapview, 1, 0, 10, 10)

        self.ocanvas = ObjectCanvas(self)
        self.oview = QGraphicsView(self.ocanvas, self)
        self.oview.setStyleSheet("border: 0px; background: transparent")
        self.grid.addWidget(self.oview, 1, 0, 10, 10)

        self.gcanvas = GridCanvas(self)
        self.view = QGraphicsView(self.gcanvas, self)
        self.view.setStyleSheet("border: 0px; background: transparent")
        self.view.setMouseTracking(True)
        self.view.setCursor(QtGui.QCursor(QtCore.Qt.CrossCursor))
        self.grid.addWidget(self.view, 1, 0, 10, 10)

        # gcanvas signal connecting here
        self.gcanvas.grid_done.connect(self.ocanvas.update_view)
        self.gcanvas.mouse_move.connect(self.refresh_coords)
        self.gcanvas.point.connect(self.ocanvas.add_point)

        if WMS_ENABLED:
            self.map_canvas = MapCanvas(self)
            self.mapview.setScene(self.map_canvas)
            self.map_canvas.img_loading.connect(self.busy)
            self.map_canvas.img_loaded.connect(self.ready)
            self.gcanvas.grid_done.connect(self.map_canvas.update_view)

        # Toolbar ************************************
        btn_group = QButtonGroup(self)
        pan_btn = QPushButton('Pan', self)
        pan_btn.setCheckable(True)
        zoom_btn = QPushButton('Zoom', self)
        zoom_btn.setCheckable(True)
        zoom_btn.setChecked(True)
        zoom_btn.clicked.connect(lambda: self.set_command('zoom'))
        point_btn = QPushButton('Σημείο', self)
        point_btn.setCheckable(True)
        point_btn.clicked.connect(lambda: self.set_command('point'))

        btn_group.addButton(pan_btn)
        btn_group.addButton(zoom_btn)
        btn_group.addButton(point_btn)

        freeze_btn = QPushButton('Πάγωμα χάρτη', self)
        freeze_btn.setCheckable(True)
        freeze_btn.clicked.connect(self.freeze_map)

        correct_map_btn = QPushButton('Διόρθωση χάρτη', self)
        correct_map_btn.clicked.connect(self.correct_map)

        import_points_btn = QPushButton('Εισαγωγή σημείων', self)
        import_points_btn.clicked.connect(self.show_import_points_dialog)

        hatt_grid_btn = QPushButton('Διανομή Κ.Φ.Χ 1:50000', self)
        hatt_grid_btn.setCheckable(True)
        hatt_grid_btn.clicked.connect(self.ocanvas.hatt_grid)

        self.grid.addWidget(pan_btn, 0, 0, 1, 1)
        self.grid.addWidget(zoom_btn, 0, 1, 1, 1)
        self.grid.addWidget(point_btn, 0, 2, 1, 1)
        self.grid.addWidget(freeze_btn, 0, 3, 1, 1)
        self.grid.addWidget(correct_map_btn, 0, 4, 1, 1)
        self.grid.addWidget(import_points_btn, 0, 5, 1, 1)
        self.grid.addWidget(hatt_grid_btn, 0, 6, 1, 1)

        # Footer ************************************
        self.spinner = QtGui.QMovie('spinner.gif', QtCore.QByteArray(), self)
        self.spinner.setCacheMode(QtGui.QMovie.CacheAll)
        self.spinner.setSpeed(100)
        self.spinlbl = QLabel(self)
        self.spinlbl.setMovie(self.spinner)
        self.spinlbl.hide()

        self.lbl = QLabel(self)
        self.lbl.setText('0.000, 0.000')

        tiffbutton = QPushButton('Αποθήκευση dxf', self)
        tiffbutton.clicked.connect(self.export_tiff)

        self.grid.addWidget(self.spinlbl, 11, 0, 1, 2)
        self.grid.addWidget(self.lbl, 11, 2, 1, 4)
        self.grid.addWidget(tiffbutton, 11, 6, 1, 4)

        self.show()
Ejemplo n.º 2
0
                   default='green',
                   help="color for the path")
    args = p.parse_args()

    in_file = sys.stdin

    if args.input != '-':
        in_file = open(args.input, 'r')

    # Raum aus Datei auslesen
    room = Room(in_file)

    if in_file != sys.stdin:
        in_file.close()

    # Zeichenoberfläche vorbereiten
    grid_canvas = GridCanvas("Turn90", room.dimension, args.scale)

    # Raum einzeichnen
    room.paint(grid_canvas, color=args.wall_color)

    # Weg berechnen und einzeichnen
    path = solve(room)
    path.paint(grid_canvas, color=args.path_color)

    # Ausgabe
    if args.output:
        grid_canvas.dump(args.output)
    if not args.no_interactive:
        grid_canvas.mainloop()