我们从Python开源项目中,提取了以下30个代码示例,用于说明如何使用PyQt5.QtCore.Qt.ItemIsEditable()。
def propertyInserted(self, index, afterIndex): afterItem = self.m_indexToItem.get(afterIndex) parentItem = self.m_indexToItem.get(index.parent()) newItem = 0 if (parentItem): newItem = QTreeWidgetItem(parentItem, afterItem) else: newItem = QTreeWidgetItem(self.m_treeWidget, afterItem) self.m_itemToIndex[newItem] = index self.m_indexToItem[index] = newItem newItem.setFlags(newItem.flags() | Qt.ItemIsEditable) newItem.setExpanded(True) self.updateItem(newItem)
def keyPressEvent(self, event): if event.key() in [Qt.Key_Return, Qt.Key_Enter, Qt.Key_Space]:## Trigger Edit if (not self.m_editorPrivate.editedItem()): item = self.currentItem() if item: if (item.columnCount() >= 2 and ((item.flags() & (Qt.ItemIsEditable | Qt.ItemIsEnabled)) == (Qt.ItemIsEditable | Qt.ItemIsEnabled))): event.accept() ## If the current position is at column 0, move to 1. index = self.currentIndex() if (index.column() == 0): index = index.sibling(index.row(), 1) self.setCurrentIndex(index) self.edit(index) return super(QtPropertyEditorView, self).keyPressEvent(event)
def mousePressEvent(self, event): super(QtPropertyEditorView, self).mousePressEvent(event) item = self.itemAt(event.pos()) if item: if ((item != self.m_editorPrivate.editedItem()) and (event.button() == Qt.LeftButton) and (self.header().logicalIndexAt(event.pos().x()) == 1) and ((item.flags() & (Qt.ItemIsEditable | Qt.ItemIsEnabled)) == (Qt.ItemIsEditable | Qt.ItemIsEnabled))): self.editItem(item, 1) elif (not self.m_editorPrivate.hasValue(item) and self.m_editorPrivate.markPropertiesWithoutValue() and not self.rootIsDecorated()): if (event.pos().x() + self.header().offset() < 20): item.setExpanded(not item.isExpanded()) ## ------------ QtPropertyEditorDelegate
def add_items(self, items: list) -> None: for item in items: listitem = QListWidgetItem(item, self.faves_listWidget) listitem.setFlags(listitem.flags() | Qt.ItemIsEditable) self.faves_listWidget.sortItems(Qt.AscendingOrder)
def add_item(self) -> None: if len(self.faves_lineEdit.text()): item = QListWidgetItem(self.faves_lineEdit.text(), self.faves_listWidget) item.setFlags(item.flags() | Qt.ItemIsEditable) self.faves_listWidget.sortItems(order=Qt.AscendingOrder) self.faves_lineEdit.clear()
def __init__(self, parent, info, title="Channel Properties"): super().__init__(parent) self.setWindowTitle(title) self.model = QStandardItemModel(info["nchan"], 4) self.model.setHorizontalHeaderLabels(["#", "Label", "Type", "Bad"]) for index, ch in enumerate(info["chs"]): item = QStandardItem() item.setData(index, Qt.DisplayRole) item.setFlags(item.flags() & ~Qt.ItemIsEditable) self.model.setItem(index, 0, item) self.model.setItem(index, 1, QStandardItem(ch["ch_name"])) kind = channel_type(info, index).upper() self.model.setItem(index, 2, QStandardItem(str(kind))) bad = QStandardItem() bad.setData(ch["ch_name"] in info["bads"], Qt.UserRole) bad.setCheckable(True) bad.setEditable(False) checked = ch["ch_name"] in info["bads"] bad.setCheckState(Qt.Checked if checked else Qt.Unchecked) self.model.setItem(index, 3, bad) self.model.itemChanged.connect(bad_changed) self.proxymodel = MySortFilterProxyModel() self.proxymodel.setSourceModel(self.model) self.view = QTableView() self.view.setModel(self.proxymodel) self.view.setItemDelegateForColumn(2, ComboBoxDelegate(self.view)) self.view.setEditTriggers(QAbstractItemView.AllEditTriggers) self.view.verticalHeader().setVisible(False) self.view.horizontalHeader().setStretchLastSection(True) self.view.setShowGrid(False) self.view.setSelectionMode(QAbstractItemView.NoSelection) self.view.setSortingEnabled(True) self.view.sortByColumn(0, Qt.AscendingOrder) self.view.resizeColumnsToContents() # for i in range(self.model.rowCount()): # self.view.openPersistentEditor(self.model.index(i, 2)) vbox = QVBoxLayout(self) vbox.addWidget(self.view) self.buttonbox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) vbox.addWidget(self.buttonbox) self.buttonbox.accepted.connect(self.accept) self.buttonbox.rejected.connect(self.reject) self.resize(400, 650)
def flags(self, index): return Qt.ItemIsEditable | Qt.ItemIsEnabled # if (index.column() == 0): # return Qt.ItemIsEditable | Qt.ItemIsEnabled # else: # return Qt.ItemIsEnabled
def flags(self, index): flags = Qt.ItemIsEnabled | Qt.ItemIsSelectable \ | Qt.ItemIsDragEnabled | Qt.ItemIsDropEnabled \ | Qt.ItemNeverHasChildren if not isinstance(self.data(index), (Font, Glyph)): flags |= Qt.ItemIsEditable return flags
def cb_function_selected(self, index): # get the peak number of the changed function i_peak = int(self.sender().objectName()[-1]) # check which function has been selected and update the table flags accordingly if index == 0: # peak has been turned off for i_row in range(1, 5): self.ui.table_widget.item(i_peak, i_row).setFlags(Qt.NoItemFlags) elif index == 1: # gaussian has been selected for i_row in range(1, 4): self.ui.table_widget.item(i_peak, i_row).setFlags( Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable) self.ui.table_widget.item(i_peak, 4).setFlags(Qt.NoItemFlags) elif index == 2: # lorentzian has been selected for i_row in range(1, 3): self.ui.table_widget.item(i_peak, i_row).setFlags( Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable) self.ui.table_widget.item(i_peak, 3).setFlags(Qt.NoItemFlags) self.ui.table_widget.item(i_peak, 4).setFlags( Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable) elif index == 3: # voigt has been selected for i_row in range(1, 5): self.ui.table_widget.item(i_peak, i_row).setFlags( Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable)
def flags(self, index): """Return the active flags for the given index. Add editable flag to items in the first colum or greater. """ activeFlags = (Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsUserCheckable) node = self.getNode(index) column = index.column() if column > 0 and not node.childCount(): activeFlags = activeFlags | Qt.ItemIsEditable return activeFlags
def _process_row(self, y, row): cols = self.columnCount() for x, i in enumerate(range(0, len(row), self._width)): block = row[i:i+self._width] item = QTableWidgetItem(codecs.encode(block, 'hex').decode()) item.setBackground(QBrush(QColor('lightgray'))) item.setForeground(QBrush(QColor('black'))) item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter) item.setData(Qt.UserRole, block) # store original data if self._read_only: item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) else: item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable) self.setItem(y, x, item) # process remaining, unfilled cells for j in range(x+1, cols): item = QTableWidgetItem() item.setBackground(QBrush(QColor('white'))) item.setFlags(Qt.NoItemFlags) item.setTextAlignment(Qt.AlignHCenter) self.setItem(y, j, item) text = self._bytes_to_ascii(row) item = QTableWidgetItem(text) item.setData(Qt.UserRole, row) # store original data item.setTextAlignment(Qt.AlignLeft| Qt.AlignVCenter) item.setBackground(QBrush(QColor('lightblue'))) item.setForeground(QBrush(QColor('black'))) if self._read_only: item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) else: item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable) self.setItem(y, cols - 1, item)
def flags(self, index): flags = super(EditableSqlModel, self).flags(index) if index.column() in (1, 2): flags |= Qt.ItemIsEditable return flags
def addImage(self): fileNames, _ = QFileDialog.getOpenFileNames(self, "Open Images", '', "Images (*.png *.xpm *.jpg);;All Files (*)") for fileName in fileNames: row = self.imagesTable.rowCount() self.imagesTable.setRowCount(row + 1) imageName = QFileInfo(fileName).baseName() item0 = QTableWidgetItem(imageName) item0.setData(Qt.UserRole, fileName) item0.setFlags(item0.flags() & ~Qt.ItemIsEditable) item1 = QTableWidgetItem("Normal") item2 = QTableWidgetItem("Off") if self.guessModeStateAct.isChecked(): if '_act' in fileName: item1.setText("Active") elif '_dis' in fileName: item1.setText("Disabled") elif '_sel' in fileName: item1.setText("Selected") if '_on' in fileName: item2.setText("On") self.imagesTable.setItem(row, 0, item0) self.imagesTable.setItem(row, 1, item1) self.imagesTable.setItem(row, 2, item2) self.imagesTable.openPersistentEditor(item1) self.imagesTable.openPersistentEditor(item2) item0.setCheckState(Qt.Checked)
def flags(self, QModelIndex): """ ?? ????? ?? ?? """ return Qt.ItemIsEditable | Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsTristate
def flags(self, QModelIndex): return Qt.ItemIsEditable | Qt.ItemIsSelectable | Qt.ItemIsEnabled
def test_edit_rules(self): num_rules = len(self.message_type.ruleset) self.assertEqual(num_rules, self.dialog.ruleset_table_model.rowCount()) self.dialog.ui.rbAssignAutomatically.click() self.assertFalse(self.message_type.assign_manually) self.dialog.ui.rbAssignManually.click() self.assertTrue(self.message_type.assign_manually) self.dialog.ui.rbAssignAutomatically.click() self.assertTrue(self.dialog.ui.btnAddRule.isEnabled()) self.dialog.ui.btnAddRule.click() self.assertEqual(num_rules + 1, len(self.message_type.ruleset)) self.assertEqual(num_rules + 1, self.dialog.ruleset_table_model.rowCount()) model = self.dialog.ruleset_table_model model.setData(model.index(0, 0), 10, role=Qt.EditRole) self.assertEqual(self.message_type.ruleset[0].start, 9) model.setData(model.index(0, 1), 20, role=Qt.EditRole) self.assertEqual(self.message_type.ruleset[0].end, 20) model.setData(model.index(0, 2), 2, role=Qt.EditRole) self.assertEqual(self.message_type.ruleset[0].value_type, 2) model.setData(model.index(0, 3), 2, role=Qt.EditRole) model.setData(model.index(0, 4), "10101", role=Qt.EditRole) self.assertEqual(self.message_type.ruleset[0].target_value, "10101") for i in range(model.rowCount()): for j in range(model.columnCount()): self.assertEqual(model.flags(model.index(i, j)), Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable) self.dialog.ui.btnRemoveRule.click() self.assertEqual(num_rules, len(self.message_type.ruleset)) self.assertEqual(num_rules, self.dialog.ruleset_table_model.rowCount())
def flags(self, index: QModelIndex): flags = super().flags(index) if index.column() == 1: flags |= Qt.ItemIsEditable return flags
def flags(self, index): if not index.isValid(): return Qt.NoItemFlags try: _ = self.message_type[index.row()] except IndexError: return Qt.NoItemFlags return Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable
def flags(self, index: QModelIndex): if not index.isValid(): return Qt.ItemIsDropEnabled return Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable | \ Qt.ItemIsUserCheckable | Qt.ItemIsDragEnabled | Qt.ItemIsDropEnabled
def flags(self, index): flags = Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsEditable try: lbl = self.labels[index.row()] except IndexError: return flags if len(lbl.fuzz_values) > 1: flags |= Qt.ItemIsUserCheckable else: lbl.fuzz_me = False return flags
def flags(self, index: QModelIndex): if index.isValid(): if self.is_writeable: return Qt.ItemIsEnabled | Qt.ItemIsEditable | Qt.ItemIsSelectable else: return Qt.ItemIsEnabled | Qt.ItemIsSelectable else: return Qt.NoItemFlags
def create_table_item(content): item = QTableWidgetItem(str(content)) item.setFlags(item.flags() & ~Qt.ItemIsEditable) return item
def flags(self, index: QModelIndex): if not index.isValid(): return Qt.NoItemFlags return Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable
def flags(self, index): if not index.isValid(): return Qt.NoItemFlags try: _ = self.checksum_label.data_ranges[index.row()] except IndexError: return Qt.NoItemFlags return Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable
def init(self, name, tag, allowed_instances, sort_order="0", allowed_children=None, properties=None, wizard=None, required_children=None, either_children_group=None, at_least_one_children_group=None, name_editable=False, ): if not properties: properties = OrderedDict() if not allowed_children: allowed_children = () if not required_children: required_children = () if not either_children_group: either_children_group = () if not at_least_one_children_group: at_least_one_children_group = () self.name = name self.tag = tag self.sort_order = sort_order self.properties = properties self.allowed_children = allowed_children self.required_children = required_children self.either_children_group = either_children_group self.at_least_one_children_group = at_least_one_children_group self.hidden_children = [] self.is_hidden = False self.allowed_instances = allowed_instances self.wizard = wizard self.metadata = {} self.user_sort_order = "0".zfill(7) self.model_item = NodeStandardItem(self) self.model_item.setText(self.name) if allowed_instances > 1 or not allowed_instances: self.model_item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsDragEnabled | Qt.ItemIsEnabled | Qt.ItemIsEditable) else: self.model_item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsDropEnabled | Qt.ItemIsEnabled | Qt.ItemIsEditable) self.model_item.setEditable(name_editable)