9

我刚从 wxPython 切换到 PyQT,我在使用 QTreeview 时遇到了一些问题。我有一个 QTreeview,它将显示分类为可扩展部分的数据,但此 TreeView 中的数据不应该是可编辑的,但我需要能够让用户选择数据(双击将执行另一种方法)。我不确定如何使它只读但也可选择。我正在使用 QStandardItemModel 和 QStandardItem 来保存数据。

任何帮助将非常感激。

4

1 回答 1

18

您可以在创建项目时将单个项目设置为不可编辑QSandardItem

item = QStandardItem('my_item_text')
item.setEditable(False)

您可以通过调用禁用整个树视图的编辑

my_treeview.setEditTriggers(QAbstractItemView.NoEditTriggers)

默认情况下,树视图应该允许您选择项目,但是如果您想更改默认行为,您将需要查看树视图的setSelectionMode()setSelectionBehavior()方法(它们是QAbstractItemView继承QTreeView自的)。这些方法的 c++ 文档可以在这里找到,我通常在 PyQt 文档上使用它,因为它通常更完整,并且转换成 Python 代码并不难。只需将所有实例替换::.)

于 2014-04-26T01:13:19.423 回答