Python PyQt5.QtGui 模块,QStandardItem() 实例源码
我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用PyQt5.QtGui.QStandardItem()。
def init_widget(self):
self.setwindowTitle("Hello World")
widget_laytout = QBoxLayout(QBoxLayout.LeftToRight)
group = qgroupbox()
Box = QBoxLayout(QBoxLayout.TopToBottom)
group.setLayout(Box)
group.setTitle("Buttons")
widget_laytout.addWidget(group)
fruits = ["Buttons in GroupBox", "TextBox in GroupBox", "Label in GroupBox", "TextEdit"]
view = QListView(self)
model = QStandardItemmodel()
for f in fruits:
model.appendRow(QStandardItem(f))
view.setModel(model)
Box.addWidget(view)
self.stk_w.addWidget(Widget_1())
self.stk_w.addWidget(Widget_2())
self.stk_w.addWidget(Widget_3())
self.stk_w.addWidget(QTextEdit())
widget_laytout.addWidget(self.stk_w)
self.setLayout(widget_laytout)
# ??? ?? ??
view.clicked.connect(self.slot_clicked_item)
def AddShapeRowLayer(self, shape, parent_item):
icon = QIcon()
icon.addpixmap(Qpixmap(":/images/shape.png"))
item_col_0 = QStandardItem(icon, "")
item_col_0.setData(QVariantShape(shape), SHAPE_OBJECT) # store a ref in our treeView element
item_col_1 = QStandardItem(shape.type)
item_col_2 = QStandardItem(str(shape.nr))
item_col_3 = QStandardItem()
parent_item.appendRow([item_col_0, item_col_1, item_col_2, item_col_3])
# Deal with the checkBoxes (shape enabled or disabled / send shape to TSP optimizer)
item_col_0.setCheckState(QtCore.Qt.Unchecked if shape.isdisabled() else QtCore.Qt.Checked)
item_col_3.setCheckState(QtCore.Qt.Checked if shape.isToolPathOptimized() else QtCore.Qt.Unchecked)
flags = QtCore.Qt.ItemIsDragEnabled | QtCore.Qt.ItemIsSelectable
if shape.allowedtochange:
flags |= QtCore.Qt.ItemIsEnabled
item_col_0.setFlags(flags | QtCore.Qt.ItemIsUserCheckable)
item_col_1.setFlags(flags)
item_col_2.setFlags(flags)
item_col_3.setFlags(flags | QtCore.Qt.ItemIsUserCheckable)
def AddCustomGCodeRowLayer(self, custom_gcode, parent_item, push_row=None):
icon = QIcon()
icon.addpixmap(Qpixmap(":/images/custom.png"))
item_col_0 = QStandardItem(icon, "") # will only display a checkBox + an icon that will never be disabled
item_col_0.setData(QtCore.QVariant(custom_gcode), CUSTOM_GCODE_OBJECT) # store a ref to the custom gcode in our treeView element
item_col_1 = QStandardItem(custom_gcode.name)
item_col_2 = QStandardItem(str(custom_gcode.nr))
item_col_3 = QStandardItem()
if push_row:
parent_item.insertRow(push_row, [item_col_0, item_col_3])
else:
parent_item.appendRow([item_col_0, item_col_3])
# Deal with the checkBoxes (shape enabled or disabled / send shape to TSP optimizer)
item_col_0.setCheckState(QtCore.Qt.Unchecked if custom_gcode.isdisabled() else QtCore.Qt.Checked)
flags = QtCore.Qt.ItemIsDragEnabled | QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled
item_col_0.setFlags(flags | QtCore.Qt.ItemIsUserCheckable)
item_col_1.setFlags(flags)
item_col_2.setFlags(flags)
item_col_3.setFlags(flags)
def updateTalents(self):
if self.currentFertName != "":
self.model.clear()
for el in Wolke.Char.fertigkeiten[self.currentFertName].gekaufteTalente:
if el.startswith("Gebräuche: "):
talStr = el[11:]
elif el.startswith("Mythen: "):
talStr = el[8:]
elif el.startswith("Überleben: "):
talStr = el[11:]
else:
talStr = el
item = QtGui.QStandardItem(talStr)
item.setEditable(False)
self.model.appendRow(item)
self.updateTalentRow()
def updateTalents(self):
if self.currentFertName != "":
self.model.clear()
for el in Wolke.Char.übernatürlicheFertigkeiten[self.currentFertName].gekaufteTalente:
if el.startswith("Gebräuche: "):
talStr = el[11:]
elif el.startswith("Mythen: "):
talStr = el[8:]
elif el.startswith("Überleben: "):
talStr = el[11:]
else:
talStr = el
if el in Wolke.DB.talente:
if el in Wolke.Char.talenteVariable:
costStr = " (" + str(Wolke.Char.talenteVariable[el]) + " EP)"
else:
costStr = " (" + str(Wolke.DB.talente[el].kosten) + " EP)"
else:
costStr = ""
item = QtGui.QStandardItem(talStr + costStr)
item.setEditable(False)
self.model.appendRow(item)
self.updateTalentRow()
def add_nodeset(self):
path, ok = QFileDialog.getopenFileName(self.view, caption="Import OPC UA XML Node Set", filter="XML Files (*.xml *.XML)", directory=".")
if not ok:
return None
name = os.path.basename(path)
if name in self.nodesets:
return
try:
self.server_mgr.import_xml(path)
except Exception as ex:
self.error.emit(ex)
raise
item = QStandardItem(name)
self.model.appendRow([item])
self.nodesets.append(name)
self.view.expandAll()
self.nodeset_added.emit(path)
def setupModel(self):
self.model = QStandardItemmodel(5, 3, self)
names = ("Alice", "Bob", "Carol", "Donald", "emma")
addresses = ("<qt>123 Main Street<br/>Market Town</qt>",
"<qt>PO Box 32<br/>Mail Handling Service"
"<br/>Service City</qt>",
"<qt>The Lighthouse<br/>Remote Island</qt>",
"<qt>47338 Park Avenue<br/>Big City</qt>",
"<qt>Research Station<br/>Base Camp<br/>Big Mountain</qt>")
ages = ("20", "31", "32", "19", "26")
for row, name in enumerate(names):
item = QStandardItem(name)
self.model.setItem(row, 0, item)
item = QStandardItem(addresses[row])
self.model.setItem(row, 1, item)
item = QStandardItem(ages[row])
self.model.setItem(row, 2, item)
def setupModel(self):
items = ("Home", "Work", "Other")
self.typeModel = QStringListModel(items, self)
self.model = QStandardItemmodel(5, self)
names = ("Alice",
"<qt>Research Station<br/>Base Camp<br/>Big Mountain</qt>")
types = ("0", "1", "2", "0", "2")
for row, item)
item = QStandardItem(types[row])
self.model.setItem(row, item)
def fill_sequence_list(self):
"""
Fill sequence_list with data.
"""
data = Data()
sequence_list = self.ui.sequence_list
model = QStandardItemmodel(sequence_list)
sequences = data.get_sequence_list()
if len(sequences) > 0:
for sequence in sequences:
note = ""
if sequence[4] is not None:
note = " - %s" % sequence[4]
item = QStandardItem("%s%s" % (sequence[1], note))
item.setEditable(False)
item.setData(str(sequence[0]), QtCore.Qt.UserRole)
model.insertRow(0, item)
sequence_list.setModel(model)
def fill_image_list(self):
"""
Fill list_image with data.
"""
data = Data()
list_images = self.ui.list_images
model = QStandardItemmodel(list_images)
images = data.get_image_list(self.sequence_id)
if len(images) > 0:
for image in images:
item = QStandardItem("%s - %s" % (image[1], functions.get_indicator(image[5])))
item.setEditable(False)
item.setData(str(image[0]), QtCore.Qt.UserRole)
model.appendRow(item)
list_images.setModel(model)
def _focus_match(self, idx, start, end):
self._api.subs.selected_indexes = [idx]
mispelt_word = self._api.subs.lines[idx].text[start:end]
cursor = self._main_window.editor.center.text_edit.textCursor()
cursor.setPosition(start)
cursor.setPosition(end, QtGui.QTextCursor.KeepAnchor)
self._main_window.editor.center.text_edit.setTextCursor(cursor)
self._mispelt_text_edit.setText(mispelt_word)
self._suggestions_list_view.model().clear()
for suggestion in self._dictionary.suggest(mispelt_word):
item = QtGui.QStandardItem(suggestion)
item.setEditable(False)
self._suggestions_list_view.model().appendRow(item)
def update_set_flags(self):
for button in self.findChildren((QCheckBox, qradiobutton), "preview_button"):
if button.isChecked():
for flag in button.property("flag_list"):
flag_label = QStandardItem(flag.label)
flag_value = QStandardItem(flag.value)
flag_plugin = QStandardItem(button.text())
existing_flag = self.model_flags.findItems(flag.label)
if existing_flag:
prevIoUs_flag_row = existing_flag[0].row()
self.model_flags.removeRow(prevIoUs_flag_row)
self.model_flags.insertRow(prevIoUs_flag_row, [flag_label, flag_value, flag_plugin])
else:
self.model_flags.appendRow([flag_label, flag_plugin])
self.list_flags.header().resizeSections(QHeaderView.Stretch)
def setupModel(self):
self.model = QStandardItemmodel(5, item)
def appendRow(self, output_folder_name: str): # noqa: N802
item = QStandardItem(output_folder_name)
super(OutputFoldersModel, self).appendRow(item)
def appendRow(self, output_folder_name: str): # noqa: N802
item = QStandardItem(output_folder_name)
super(AutoprofileModel, self).appendRow(item)
def appendRow(self, branch_name: str): # noqa: N802
item = QStandardItem(branch_name)
super(BranchesModel, self).appendRow(item)
def type(self):
return QtGui.QStandardItem.UserType + 4
def type(self):
return QtGui.QStandardItem.UserType + 6
def type(self):
return QtGui.QStandardItem.UserType + 7
def type(self):
return QtGui.QStandardItem.UserType + 1
def type(self):
return QtGui.QStandardItem.UserType + 3
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, item)
self.model.setItem(index, QStandardItem(ch["ch_name"]))
kind = channel_type(info, index).upper()
self.model.setItem(index, 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, 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 read_file(self, file):
if file is None:
return
with open(file, 'r') as f:
for line in f:
lis = line.split(' : ')
if len(lis) != 2:
continue
key = (lis[1], lis[0])
self.keys.append(key)
self.ui.model = QtGui.QStandardItemmodel(self.ui.listView)
for key in self.keys:
item = QtGui.QStandardItem(key[0].rstrip('\n'))
self.ui.model.appendRow(item)
self.ui.listView.setModel(self.ui.model)
def read_file(self, file):
with open(file, lis[0])
self.keys.append(key)
self.ui.model = QtGui.QStandardItemmodel(self.ui.listView)
for key in self.keys:
item = QtGui.QStandardItem(key[0].rstrip('\n'))
self.ui.model.appendRow(item)
self.ui.listView.setModel(self.ui.model)
def LoadBiocPakageList(self):
# loading
item = QStandardItem(" >>> Loading bioconductor package list <<< ")
self.model_package.appendRow(item)
self.lstPackages.setModel(self.package_list_proxy)
self.lstPackages.resizeColumnsToContents()
self.loadpackage_thread = BiocPackageList()
self.loadpackage_thread.load_completed.connect(self.ThreadEvent_OnLoadBiocPackageCompleted)
self.loadpackage_thread.start()
def ThreadEvent_OnLoadBiocPackageCompleted(self, packagelist):
self.model_package.removeRows(0, self.model_package.rowCount())
for pkg in packagelist:
itemName = QStandardItem(pkg['Name'])
itemName.setCheckable(True)
itemTitle = QStandardItem(pkg['Title'])
self.model_package.appendRow([itemName, itemTitle])
# Apply the model to the list view
self.lstPackages.setModel(self.package_list_proxy)
#self.lstPackages.resizeColumnToContents(0)
self.lstPackages.setColumnWidth(0, 190)
self.lstPackages.setColumnWidth(1, 130)
def buildEntitiesTree(self, entities_list):
"""
This method populates the Entities (blocks) QTreeView with
all the elements contained in the entities_list
Method must be called each time a new .dxf file is loaded.
options
@param entities_list: list of the layers and shapes (created in the main)
"""
self.entities_list = entities_list
if self.entity_item_model:
self.entity_item_model.clear() # Remove any existing item_model
self.entity_item_model = QStandardItemmodel()
self.entity_item_model.setHorizontalHeaderItem(0, QStandardItem(self.tr("[en]")))
self.entity_item_model.setHorizontalHeaderItem(1, QStandardItem(self.tr("Name")))
self.entity_item_model.setHorizontalHeaderItem(2, QStandardItem(self.tr("Nr")))
self.entity_item_model.setHorizontalHeaderItem(3, QStandardItem(self.tr("Type")))
self.entity_item_model.setHorizontalHeaderItem(4, QStandardItem(self.tr("Base point")))
self.entity_item_model.setHorizontalHeaderItem(5, QStandardItem(self.tr("Scale")))
self.entity_item_model.setHorizontalHeaderItem(6, QStandardItem(self.tr("Rotation")))
modele_root_element = self.entity_item_model.invisibleRootItem()
self.buildEntitiesSubTree(modele_root_element, entities_list)
# Signal to get events when a checkBox state changes (enable or disable shapes)
self.entity_item_model.itemChanged.connect(self.on_itemChanged)
self.ui.entitiesTreeView.setModel(self.entity_item_model)
self.ui.entitiesTreeView.expandToDepth(0)
for i in range(6):
self.ui.entitiesTreeView.resizeColumnToContents(i)
def updateGUI(self):
self.model.clear()
if self.ui.showTalente.isChecked():
for itm in self.datenbank.talente:
item = QtGui.QStandardItem(itm + " : Talent")
item.setEditable(False)
self.model.appendRow(item)
if self.ui.showVorteile.isChecked():
for itm in self.datenbank.vorteile:
item = QtGui.QStandardItem(itm + " : Vorteil")
item.setEditable(False)
self.model.appendRow(item)
if self.ui.showFertigkeiten.isChecked():
for itm in self.datenbank.fertigkeiten:
item = QtGui.QStandardItem(itm + " : Fertigkeit")
item.setEditable(False)
self.model.appendRow(item)
if self.ui.showUebernatuerlicheFertigkeiten.isChecked():
for itm in self.datenbank.übernatürlicheFertigkeiten:
item = QtGui.QStandardItem(itm + " : Übernatürliche Fertigkeit")
item.setEditable(False)
self.model.appendRow(item)
if self.ui.showWaffen.isChecked():
for itm in self.datenbank.waffen:
item = QtGui.QStandardItem(itm + " : Waffe")
item.setEditable(False)
self.model.appendRow(item)
self.ui.listDatenbank.setModel(self.model)
def set_server_mgr(self, server_mgr):
self.server_mgr = server_mgr
self.nodesets = []
self.model.clear()
self.model.setHorizontalHeaderLabels(['Node Sets'])
item = QStandardItem("Opc.Ua.NodeSet2.xml")
item.setFlags(Qt.NoItemFlags)
self.model.appendRow([item])
self.view.expandAll()
def add_namespace(self):
uries = self.node.get_value()
newidx = len(uries)
it = self.model.item(0, 0)
uri_it = QStandardItem("")
it.appendRow([QStandardItem(), QStandardItem(str(newidx)), uri_it])
idx = self.model.indexFromItem(uri_it)
self.view.edit(idx)
def show_array(self):
self.model.setHorizontalHeaderLabels(['browse Name', 'Index', 'Value'])
name_item = QStandardItem(self.node.get_browse_name().Name)
self.model.appendRow([name_item, QStandardItem(""), QStandardItem()])
it = self.model.item(0, 0)
val = self.node.get_value()
for idx, url in enumerate(val):
it.appendRow([QStandardItem(), QStandardItem(str(idx)), QStandardItem(url)])
self.view.expandAll()
def add_item(self):
self.model.appendRow(QStandardItem('Hello,world!!'))
def Update_Server_Status(self, data):
self.status_model.clear()
for status in data:
loc = ""
for locale in status[ServerLocales]:
loc += "%s," % locale
game = QtGui.QStandardItem(status[ServerServices][0]["status"])
game.setForeground(QtGui.QBrush(QtGui.QColor(28, 196, 2)) if status[ServerServices][0]["status"] == "online" else QtGui.QBrush(QtGui.QColor(255, 0)))
store = QtGui.QStandardItem(status[ServerServices][1]["status"])
store.setForeground(QtGui.QBrush(QtGui.QColor(28, 2)) if status[ServerServices][1]["status"] == "online" else QtGui.QBrush(QtGui.QColor(255, 0)))
website = QtGui.QStandardItem(status[ServerServices][2]["status"])
website.setForeground(QtGui.QBrush(QtGui.QColor(28, 2)) if status[ServerServices][2]["status"] == "online" else QtGui.QBrush(QtGui.QColor(255, 0)))
client = QtGui.QStandardItem(status[ServerServices][3]["status"])
client.setForeground(QtGui.QBrush(QtGui.QColor(28, 2)) if status[ServerServices][3]["status"] == "online" else QtGui.QBrush(QtGui.QColor(255, 0)))
client_update = QtGui.QStandardItem(status[ServerServices][4]["status"])
client_update.setForeground(QtGui.QBrush(QtGui.QColor(28, 2)) if status[ServerServices][4]["status"] == "online" else QtGui.QBrush(QtGui.QColor(255, 0)))
self.status_model.appendRow([QtGui.QStandardItem(status[ServerName]),
QtGui.QStandardItem(status[ServerHostName]),
QtGui.QStandardItem(status[ServerSlug]),
game,
store,
website,
client,
client_update,
QtGui.QStandardItem(loc)
])
self.status_model.setHorizontalHeaderLabels(["Name", "Host Name", "Slug", "Game", "Store", "Website", "Client", "Client Update", "Locales"])
self.serversView.resizeColumnsToContents()
self.serversView.resizeRowsToContents()
self.UpdateStatus("<b>Servers Status</b> added to UI successfully.")
def __init__(self, data=None, parent=None):
QStandardItemmodel.__init__(self, parent)
for i, d in enumerate(data):
col_1 = QStandardItem(d["name"])
col_2 = QStandardItem(d["image"])
col_3 = QStandardItem(d["color"])
self.setItem(i, col_1)
self.setItem(i, col_2)
self.setItem(i, col_3)
self.setHorizontalHeaderLabels(["Name", "Image", "Color"])
def __init__(self, d in enumerate(data):
item = QStandardItem(d["name"])
item.setData(d["image"], Qt.decorationRole)
self.setItem(i, item)
def __init__(self, d in enumerate(data):
self.setItem(i, QStandardItem(d))
def __init__(self, data):
QStandardItemmodel.__init__(self)
self._data = data
for j, d in enumerate(data):
item = QStandardItem(d["type"])
for obj in d["objects"]:
child = QStandardItem(obj)
child.setData(d["picture"], Qt.decorationRole) # Role ??? ? ?? ??? ? ??? ??
item.appendRow(child)
self.setItem(j, item)
def __init__(self, data):
QStandardItemmodel.__init__(self)
d = data[0] # Fruit
item = QStandardItem(d["type"])
child = QStandardItem(d["objects"][0]) # Apple
item.appendRow(child)
child = QStandardItem(d["objects"][1]) # Banana
item.appendRow(child)
self.setItem(0, item)
d = data[1] # vegetable
item = QStandardItem(d["type"])
child = QStandardItem(d["objects"][0]) # Carrot
item.appendRow(child)
child = QStandardItem(d["objects"][1]) # Tomato
item.appendRow(child)
self.setItem(1, item)
# for ?? ???? ???? ??
# for j,_type in enumerate(data):
# item = QStandardItem(_type["type"])
# for obj in _type["objects"]:
# child = QStandardItem(obj)
# item.appendRow(child)
# self.setItem(j,item)
def add_path(self, path):
if path not in self._paths:
self._paths.append(path)
item = QStandardItem(path)
self.appendRow(item)
self._save_settings()
def _load_settings(self):
App.settings.beginGroup('sunvox')
try:
paths = App.settings.value('workspace_paths')
if paths is not None:
self._paths = paths
self.clear()
for path in paths:
self.appendRow(QStandardItem(path))
finally:
App.settings.endGroup()
def remove(self):
selected = self.blockedList.selectedItems()
if selected:
item = selected[0]
index = self.blockedList.indexFromItem(item)
self.blockedList.takeItem(index.row())
user = item.text()
self.app.blocked.remove(user)
if user in self.app.friends.keys():
treeitem = QStandardItem(user)
treeitem.setText(user)
treeitem.setIcon(QIcon(self.app.theme["path"] + "/offline.png"))
self.app.gui.friendsModel.appendRow(treeitem)
def _show_attr(self, attr, dv):
if attr == ua.AttributeIds.DataType:
string = data_type_to_string(dv.Value.Value)
elif attr in (ua.AttributeIds.AccessLevel,
ua.AttributeIds.UserAccessLevel,
ua.AttributeIds.WriteMask,
ua.AttributeIds.UserWriteMask,
ua.AttributeIds.EventNotifier):
string = enum_to_string(attr, dv.Value.Value)
else:
string = val_to_string(dv.Value.Value)
name_item = QStandardItem(attr.name)
vitem = QStandardItem(string)
vitem.setData(AttributeData(attr, dv.Value.Value, dv.Value.VariantType), Qt.UserRole)
self.model.appendRow([name_item, vitem, QStandardItem(dv.Value.VariantType.name)])
def _show_value_attr(self, dv):
name_item = QStandardItem("Value")
vitem = QStandardItem()
items = self._show_val(name_item, None, "Value", dv.Value.VariantType)
items[1].setData(AttributeData(attr, Qt.UserRole)
row = [name_item, QStandardItem(dv.Value.VariantType.name)]
self.model.appendRow(row)
self._show_timestamps(name_item, dv)
def _show_val(self, obj, name, val, vtype):
name_item = QStandardItem(name)
vitem = QStandardItem()
vitem.setText(val_to_string(val))
vitem.setData(MemberData(obj, vtype), QStandardItem(vtype.name)]
# if we have a list or extension object we display children
if isinstance(val, list):
row[2].setText("List of " + vtype.name)
self._show_list(name_item, vtype)
elif vtype == ua.VariantType.ExtensionObject:
self._show_ext_obj(name_item, val)
parent.appendRow(row)
return row
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。