Если model
будет присоединено к нескольким представлениям, и вы не хотите, чтобы оно было доступно для редактирования любым из них, вы можете создать подкласс QStringListModel
и переопределить flags()
:
from PyQt5.QtCore import Qt
class UneditableStringListModel(QStringListModel):
def flags(self, index):
return Qt.ItemIsSelectable & Qt.ItemIsEnabled
listView = QListView()
model = UneditableStringListModel([ "item1" , "item2" , "item3" ])
listView.setModel(model)
Теперь пользователь не сможет редактировать model
из любого вида.