2011-06-03 17 views
7

Öğelerin listesini görüntüleyen bir QListView'im var ancak öğelerin düzenlenmesini istemiyorum (Şu anda öğeyi çift tıklatmanız bunları düzenlemenize olanak tanır).Uneditable 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) 

cevap

21

çizgi ekleme:

self.listView.setEditTriggers(QAbstractItemView.NoEditTriggers) 

sizin için şeyleri düzeltmek gerekir

Bu

benim Kod olduğunu.

QListView, setEditTriggers() yöntemine sahip QAbstractItemView öğelerini devralır. SetEditTriggers için diğer possible values dokümanlar mevcuttur.

+0

Bu belirli bir görünümden değil, hala düzenlenebilir olacağından daha çok bir kopyadır. – takoi

0

QStringListModel, tanımlı olarak düzenlenebilir. Alt sınıflar ve uygun flags

0

'u sağlamanız gerekir. Yanıtlarınız için teşekkür ederiz. Varsayılan olarak düzenlenebilir olmadığından, bir QListWidget ile devam ettim.

Ayrıca, QListView fare çift tıklattı olayını verdiyseniz ve QListView dosyasını düzenlemek dışında bir işlem yapacak şekilde ayarladığımı da bulsam da, düzenleme işlevini de geçersiz kılar.

Tekrar teşekkürler, çok minnettarım.

İlgili konular