我刚刚从wxPython切换到PyQT,我在QTreeview上遇到了一些麻烦。我有一个QTreeview,它将显示分类为可扩展的部分的数据,但是这个TreeView中的数据不应该是可编辑的,但我需要能够让用户选择数据(双击将执行另一个方法)。我不确定如何使它只读,但也可以选择。我使用QStandardItemModel和QStandardItem来保存数据。
非常感谢任何帮助。
答案 0 :(得分:11)
您可以在创建QSandardItem
item = QStandardItem('my_item_text')
item.setEditable(False)
您可以通过调用
禁用整个树视图的编辑my_treeview.setEditTriggers(QAbstractItemView.NoEditTriggers)
默认情况下,树视图应该允许您选择项目,但是如果您想要更改默认行为,您将需要查看树视图的setSelectionMode()
和setSelectionBehavior()
方法(它们适用于QAbstractItemView
继承的QTreeView
。这些方法的c ++文档可以找到here,我通常会在PyQt文档中使用它,因为它通常更完整,并且转换成Python代码并不困难。只需将::
的所有实例替换为.
)