def rowFromData(self, data): row = [] for c in data: item = QStandardItem(str(c)) item.setFlags((item.flags() | Qt.ItemIsEditable) if self.editable else (item.flags() & ~Qt.ItemIsEditable)) row.append(item) return row
def init_ui(self): model = QStandardItemModel() model.insertColumns(0, 4) model.setHeaderData(0, 1, 'ID', 0) model.setHeaderData(1, 1, 'Sigle', 0) model.setHeaderData(2, 1, 'Parameter', 0) model.setHeaderData(3, 1, 'Value', 0) sql = "SELECT id, sigle, text, value FROM {0}.tracer_physic WHERE type = '{1}' ORDER BY id".format( self.mdb.SCHEMA, self.cur_wq_mod) rows = self.mdb.run_query(sql, fetch=True) model.insertRows(0, len(rows)) for r, row in enumerate(rows): for c, val in enumerate(row): itm = QStandardItem() itm.setData(val, 0) if c == 3: itm.setData(data_to_float(val), 0) itm.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable) itm.setTextAlignment(Qt.AlignRight | Qt.AlignVCenter) else: itm.setData(val, 0) itm.setFlags(Qt.ItemIsEnabled) model.setItem(r, c, itm) self.ui.tab_param.setModel(model) self.ui.tab_param.hide() self.ui.tab_param.resizeColumnsToContents() self.ui.tab_param.resizeRowsToContents() self.ui.tab_param.setColumnHidden(0, True) self.ui.ui.tab_param.show()
def __init__(self, iface, ml): """Constructor for the dialog. Args: iface: QgsInterface instance. """ QDialog.__init__(self, iface.mainWindow()) self.setupUi(self) self.setWindowTitle('Attributes to BUGS') self.ml = ml self.ids = [] self.polynum = self.ml.featureCount() self.model = QStandardItemModel(0, 1) self.listView.setModel(self.model) self.model.setHeaderData(0, Qt.Horizontal, 'Field') provider = self.ml.dataProvider() fields = provider.fields() for f in fields: item = QStandardItem(f.name()) item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) item.setData(Qt.Unchecked, Qt.CheckStateRole) self.model.appendRow(item) self.control() self.pushButton.clicked.connect(self.konv) self.pushButton_2.clicked.connect(self.close) self.pushButton_3.clicked.connect(self.save)
def update_cbb_keywords(self, tags_keywords: dict = {}, selected_keywords: list = []): """Keywords combobox is specific because items are checkable. See: https://github.com/isogeo/isogeo-plugin-qgis/issues/159 :param dict tags_keywords: keywords found in search tags. :param list selected_keywords: keywords (codes) already checked. """ selected_keywords_lbls = self.cbb_chck_kw.checkedItems() # for tooltip logger.debug( "Updating keywords combobox with {} items, including {} selected.". format(len(tags_keywords), len(selected_keywords_lbls))) # shortcut model = self.cbb_chck_kw.model() # disconnect the widget before updating try: model.itemChanged.disconnect() except TypeError: pass # clear the the combobox content model.clear() # parse keywords and check selected i = 0 # row index for tag_label, tag_code in sorted(tags_keywords.items()): item = QStandardItem(tag_label) item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) item.setData(tag_code, 32) if len(selected_keywords ) == 0 or tag_code not in selected_keywords: item.setData(Qt.Unchecked, Qt.CheckStateRole) model.setItem(i, 0, item) elif tag_code in selected_keywords: item.setData(Qt.Checked, Qt.CheckStateRole) model.insertRow(0, item) else: pass i += 1 # connect keyword selected -> launch search model.itemChanged.connect(self.kw_sig.emit) # add tooltip with selected keywords. see: #107#issuecomment-341742142 if selected_keywords: tooltip = "{}\n - {}".format( self.tr("Selected keywords:", context=__class__.__name__), "\n - ".join(selected_keywords_lbls), ) else: tooltip = self.tr("No keyword selected", context=__class__.__name__) self.cbb_chck_kw.setToolTip(tooltip)
def add_source(self, name, type, path, origin_info, checked, enabled): item = QStandardItem() self._checked_models[(name, path)] = checked item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled if enabled else Qt.NoItemFlags) item.setData(name, int(Qt.DisplayRole)) item.setData(name, int(SourceModel.Roles.NAME)) item.setData(type, int(SourceModel.Roles.TYPE)) item.setData(path, int(SourceModel.Roles.PATH)) item.setData(origin_info, int(SourceModel.Roles.ORIGIN_INFO)) self.appendRow(item)
def refreshOgcWidgets(self): """ read the ogc_combo and fill it with the services """ self.ogc_list_model.clear() ogc_selection = self.ogc_combo.currentData() services = SERVICE_MANAGER.available_services(ogc_selection) group_items = {} for service in services: service_config = SERVICE_MANAGER.service_details( ogc_selection, service) group = service_config.get('group') if not group or group in group_items: continue group_item = QStandardItem(group) group_item.setFlags(Qt.ItemIsEnabled) self.ogc_list_model.appendRow([group_item]) group_items[group] = group_item first_item = None for service in services: item = QStandardItem(service) item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable) item.setData(service, role=Qt.UserRole) if not first_item: first_item = item service_config = SERVICE_MANAGER.service_details( ogc_selection, service) group = service_config.get('group') if group: parent = group_items[group] parent.appendRow([item]) else: self.ogc_list_model.appendRow([item]) self.ogc_list.expandAll() first_item_index = self.ogc_list_model.indexFromItem(first_item) self.ogc_list.selectionModel().select( first_item_index, QItemSelectionModel.ClearAndSelect) service_config = SERVICE_MANAGER.service_details( ogc_selection, self.get_current_service_id(ogc_selection)) self.button_ogc_edit_service.setEnabled( not service_config['read_only']) self.button_ogc_rename_service.setEnabled( not service_config['read_only']) self.button_ogc_remove_service.setEnabled( not service_config['read_only'])
def loadAdditionalItems(self, items): """Add some additional layers to this NafiTreeViewModel.""" additionalItemsGroup = QStandardItem() additionalItemsGroup.setFlags(Qt.ItemIsEnabled) additionalItemsGroup.setText("Additional layers") additionalItemsGroup.setIcon(QIcon(":/plugins/nafi/images/folder.png")) for item in items: assert isinstance(item, QStandardItem) additionalItemsGroup.appendRow(item) self.appendRow(additionalItemsGroup)