Nin*_*ils 2 python qt pyqt qtreeview qstandarditem
如果我构造一个QStandardItem这样的:
item = QtGui.QStandardItem('Item Name')
Run Code Online (Sandbox Code Playgroud)
当这个项目被添加到一个QStandardItemModel模型并在一个模型中查看时,QTreeView我得到一个单元格,上面写着Item Name. 但是,当我构建一个像:
item = QtGui.QStandardItem()
item.setData(123)
Run Code Online (Sandbox Code Playgroud)
我得到一个空单元格,但我仍然可以通过调用来调用数据:
print(item.data())
Run Code Online (Sandbox Code Playgroud)
我会得到号码123。如何让数字实际显示在单元格中?
传递给QStandardItem构造函数的参数设置DisplayRole的数据。所以等效的方法是:
item.setData(str(123), QtCore.Qt.DisplayRole)
Run Code Online (Sandbox Code Playgroud)
或者:
item.setText(str(123))
Run Code Online (Sandbox Code Playgroud)
但是,如果您想以原始数据类型存储数据,而不是先将其转换为字符串,则可以使用QStyledItemDelegate来控制原始数据的显示方式:
class ItemDelegate(QStyledItemDelegate):
def displayText(self, value, locale):
if isinstance(value, float):
return '%08f' % value
return value
view.setItemDelegate(ItemDelegate(view))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4514 次 |
| 最近记录: |