كيفية تعطيل سلوك إعادة تسمية الملف بالنقر المزدوج على QTreeView وQFileSystemModel في PyQt؟
-
12-12-2019 - |
سؤال
سؤال بسيط.أرغب في استخدام F2 أو Enter لإعادة التسمية، ثم انقر نقرًا مزدوجًا لفتح ملف.
استخدام self.treeView.doubleClicked.connect(self.doubleclick)
أستطيع أن أفعل الأشياء في بلدي self.doubleClick
الطريقة، ولكن لا يزال يتم تشغيل إعادة التسمية.
النموذج ليس للقراءة فقط (model.setReadOnly(False)
).
المحلول
بشكل افتراضي، doubleClicked
تنبعث الإشارة مباشرة قبل إجراء التحرير العادي، والذي يتم تنفيذه بواسطة QAbstractItemView.edit وظيفة.
لحسن الحظ، هذه الوظيفة افتراضية، لذا يمكن إعادة تنفيذها في فئة فرعية:
class TreeView(QtGui.QTreeView):
def edit(self, index, trigger, event):
if trigger == QtGui.QAbstractItemView.DoubleClicked:
print 'DoubleClick Killed!'
return False
return QtGui.QTreeView.edit(self, index, trigger, event)
نصائح أخرى
لا أعرف إذا كان لديك هذا في إصدارات python، ولكن في C++ Qt، قمت فقط بتعيين مشغلات التحرير في QAbstractItemView:
void setEditTriggers ( EditTriggers triggers )
لا تنتمي إلى StackOverflow