gpt4 book ai didi

python - 如何在 PyQt5 的 QTableWidgetItem 中使用 UserRole 设置数据

转载 作者:太空宇宙 更新时间:2023-11-03 15:40:05 28 4
gpt4 key购买 nike

当我尝试使用QtCore.Qt.UserRolesetData存储数据时,它崩溃了:item.setData(QtCore. Qt.UserRole,数据)

有趣的是,非常相似的方法在 PyQt4 中也有效(我实际上是将以前编写的 PyQt4 代码移植到 PyQt5)。

from PyQt5 import QtCore, QtGui, QtWidgets

table = QtWidgets.QTableWidget()
items = ['Item_01','Item_02','Item_03']
column_names = ['Column_01','Column_02','Column_03']

for row, header in enumerate(items):
for col, column_name in enumerate(column_names):
item = QtWidgets.QTableWidgetItem(column_name)
table.setItem(row, col, item)
item.setData(QtCore.Qt.UserRole, column_name)

最佳答案

我也遇到了同样的问题,@ekhumoro kindly helped me out

我使用了模型/ View 方法,并且 QTableWidget 继承了 QTableView,因此它也应该适合您。

column0 = QtGui.QStandardItem()
column0.setData('Some Label',QtCore.Qt.DisplayRole)
column0.setEditable(False)

x = 123.456

column1 = QtGui.QStandardItem()
column1.setData(x,QtCore.Qt.DisplayRole)

data = [column0, column1]

row = 0 #Specify a row.

for index, element in enumerate(data):
model.setItem(row,index,element)
# Or in this case you might write: treeWidget.setItem(...)

可以使用 can be found here 的角色列表。

编辑我想我错过了您指定userRole的地方,在这种情况下只需指定:

QtCore.Qt.UserRole+desired_role_number

关于python - 如何在 PyQt5 的 QTableWidgetItem 中使用 UserRole 设置数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42213723/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com