Нередактируемом 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)
3 ответов
добавить строку:
self.listView.setEditTriggers(QAbstractItemView.NoEditTriggers)
должны исправить вещи для вас.
QListView наследует QAbstractItemView, который имеет метод setEditTriggers(). Другое возможные значения для setEditTriggers доступны в документах.
QStringListModel по определению редактируется. Вы должны подкласс и предоставить соответствующий флаги
Спасибо за ответы. Я закончил тем, что с QListWidget
вместо этого, поскольку он не редактируется по умолчанию.
хотя я также нашел, если вы дадите QListView
дважды щелкните мышью событие и установите его, чтобы сделать что-то другое, чем редактировать QListView
, он переопределяет функцию редактирования, чтобы она тоже работала.
еще раз спасибо, очень признателен.