不可编辑QListView

问题描述:

我有一个QListView显示项目列表,但我不想要项目进行编辑(目前双击该项目允许您编辑它们)。不可编辑QListView

这是我的代码:

self.listView = QListView() 
self.model = QStringListModel([ "item1" , "item2" , "item3" ]) 
self.listView.setModel(self.model) 

self.layout = QGridLayout() 
self.layout.addWidget(self.listView, 0 , 0) 
self.setLayout(self.layout) 

添加一行:

self.listView.setEditTriggers(QAbstractItemView.NoEditTriggers) 

应该可以解决你的东西。

QListView继承了具有方法setEditTriggers()的QAbstractItemView。有关setEditTriggers的其他possible values可在文档中找到。

+0

这是更多的黑客,因为它仍然是可编辑的,只是不通过这个特定的看法。 – takoi 2011-06-04 09:13:03

QStringListModel根据定义是可编辑的。您应该继承并提供相应的flags

感谢您的回复。我最终选择了QListWidget,因为它默认情况下不可编辑。

虽然我还发现,如果你给QListView一个鼠标双击事件并将其设置为除编辑QListView之外的其他东西,它将覆盖编辑功能,以便也可以使用。

再次感谢,非常感谢。