2011-06-03 9 views
7

मैं एक 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) 

उत्तर

21

लाइन जोड़ना::

self.listView.setEditTriggers(QAbstractItemView.NoEditTriggers) 

आप के लिए चीजों को ठीक करना चाहिए

यह मेरा कोड है।

QListView विरासत QAbstractItemView कौन सी विधि है setEditTriggers()। SetEditTriggers के लिए अन्य possible values दस्तावेज़ों में उपलब्ध हैं।

+0

यह एक हैक के अधिक यह अभी भी संपादित किया जा सकेगा सिर्फ इस विशेष दृश्य के माध्यम से नहीं के रूप में है। – takoi

0

QStringListModel परिभाषा संपादन योग्य कर रहा है। आप उपवर्ग और प्रदान करते हैं प्रतिक्रिया के लिए उचित flags

0

धन्यवाद करना चाहिए। मैं QListWidget के साथ जा रहा था क्योंकि यह डिफ़ॉल्ट रूप से संपादन योग्य नहीं है।

हालांकि मुझे यह भी पता चला कि क्या आप QListView एक माउस डबल क्लिकेड ईवेंट देते हैं और इसे QListView संपादित करने के अलावा कुछ और करने के लिए सेट करते हैं, यह संपादन फ़ंक्शन को ओवरराइड करता है ताकि यह भी काम करता हो।

पुनः धन्यवाद, बहुत सराहना।

संबंधित मुद्दे