def update_polygon_list(self): """更新多边形列表""" polygon_table = self.db.polygon_table _id = self.selected_id() self.ui.polygon_table_widget.fill_with_polygons(polygon_table) self.ui.graphics_view.set_polygons(polygon_table, len(config_loader.get_layer_names())) if len(polygon_table) > 0: if not self.select_row_by_id(_id): self.ui.polygon_table_widget.setCurrentCell(0, 0)
def __init__(self, parent=None): super().__init__() config_loader.load_all() # ui self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.graphics_view.setScene(QGraphicsScene()) self.view = self.ui.graphics_view self.scene = self.ui.graphics_view.scene() self.ui.polygon_table_widget.setColumnCount(2) self.ui.polygon_table_widget.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection) self.ui.polygon_table_widget.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) self.ui.polygon_table_widget.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) self.ui.second_table_widget.setSelectionMode(QtWidgets.QAbstractItemView.SingleSelection) self.ui.second_table_widget.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) self.ui.second_table_widget.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) self.ui.insert_layer_combo_box.addItems(config_loader.get_layer_names()) self.ui.graphics_view.scale(1, -1) # invert y # data self.db = DbHelper() self.command_handler = MapCommand(self.db) self.path = None # fsm self.__init_fsm() # other signals/slots self.command_handler.gotoPolygon.connect(self.goto_polygon) self.ui.polygon_table_widget.itemSelectionChanged.connect(self.polygon_selection_changed) self.ui.polygon_table_widget.itemClicked.connect(self.polygon_selection_clicked) self.ui.polygon_table_widget.polygonActivated.connect(self.goto_polygon) self.ui.second_table_widget.itemSelectionChanged.connect(self.second_selection_changed) self.ui.second_table_widget.polygonActivated.connect(self.goto_polygon) self.ui.scale_slider.valueChanged.connect(self.scale_slider_changed) self.ui.graphics_view.polygonCreated.connect(self.add_polygon) self.ui.graphics_view.polygonUpdated.connect(self.update_polygon) self.ui.graphics_view.pointsUpdated.connect(self.update_points) log.logger.onLog.connect(self.print_to_output) # open default database self.setAcceptDrops(True) self.open("default.sqlite", True)