【发布时间】:2017-06-30 21:11:58
【问题描述】:
如果我像这样构造一个QStandardItem:
item = QtGui.QStandardItem('Item Name')
当将此项目添加到 QStandardItemModel 模型并在 QTreeView 中查看时,我会看到一个显示 Item Name 的单元格。但是,当我构造一个像:
item = QtGui.QStandardItem()
item.setData(123)
我得到一个空单元格,但我仍然可以通过调用调用数据:
print(item.data())
我会得到号码123。如何让数字实际显示在单元格中?
【问题讨论】:
-
item.setData(str(123)). -
我需要它是一个可编辑的数字,但我不能依赖字符串来浮动转换。我不明白为什么如果我直接从模型中设置数据:
model.setData(model.index(0,1),123.987)它会显示数字,但如果我在QStandardItem上执行它就不会。 -
另外我刚刚尝试了你的建议,它也不起作用。要我粘贴一个可运行的示例程序吗?我只是觉得如果是一个简单的答案,这个问题可能太多了。
-
忘记了角色:
item.setData(str(123), QtCore.Qt.DisplayRole)(与item.setText(str(123))相同)。但也请参阅this answer。 -
你是个传奇。所以基本上数据就在那里,但要显示它必须显示为
QString,这是通过在设置数据时指定角色来完成的。角色是您分配给项目的数据类型(工具提示/显示等)如果您愿意将其写为答案,我会接受。
标签: python qt pyqt qtreeview qstandarditem