如果我像这样构造一个QStandardItem
:
item = QtGui.QStandardItem('Item Name')
当此项目添加到 QStandardItemModel
模型并在 QTreeView
中查看时,我得到一个显示 Item Name
的单元格。然而,当我构建一个这样的:
item = QtGui.QStandardItem()
item.setData(123)
我得到一个空单元格,但我仍然可以通过调用以下方式调用数据:
print(item.data())
我会得到号码 123
。如何让数字实际显示在单元格中?
最佳答案
传递给 QStandardItem
构造函数的参数设置 DisplayRole 的数据.所以等效的方法是:
item.setData(str(123), QtCore.Qt.DisplayRole)
或:
item.setText(str(123))
但是如果你想以原始数据类型存储数据,而不是先将其转换为字符串,你可以使用 QStyledItemDelegate
来控制原始数据的显示方式:
class ItemDelegate(QStyledItemDelegate):
def displayText(self, value, locale):
if isinstance(value, float):
return '%08f' % value
return value
view.setItemDelegate(ItemDelegate(view))
关于python - PyQt5 : Setting data for a QStandardItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42194649/