【发布时间】:2019-09-14 17:34:46
【问题描述】:
我正在使用 Python 3.6 和 pyqt 4.11。我有两个 QTreeView 堆叠在一个小部件中,它们都显示一些批处理作业,因此每个步骤都可以扩展以显示所有功能。我希望能够双击树视图的一行并生成一个弹出对话框,我可以在其中编辑我双击的函数的参数。
如果我连接双击信号而不捕获位置:
self.connect(self.QTreeView, QtCore.SIGNAL('mouseDoubleClickEvent()'),print('OK'))
它可以工作,并打印 OK。
但是,一旦我尝试捕捉光标位置,就没有任何反应了。我已经尝试将整个小部件和 treeView 连接到一个简单的测试函数。它根本不起作用,甚至没有打印出来。
self.connect(self.QTreeView, QtCore.SIGNAL('mouseDoubleClickEvent(const QPoint &)'),self.showDlg)
def showDlg (self, point):
print ('OK')
treeidx=self.treeview.indexAt(point)
print (treeidx)
右键单击整个 Widget 会触发 ContextMenu 并且可以正常工作
self.QTreeWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.connect(self.QTreeWidget, QtCore.SIGNAL('customContextMenuRequested(const QPoint &)'), self.customMyContextMenu)
但是双击同一个小部件没有结果
self.connect(self.QTreeWidget, QtCore.SIGNAL('mouseDoubleClickEvent(const QPoint &)'),self.showDlg)
我想使用指针位置来知道在树视图的哪个叶子中必须发生更改,我想
treeview.indexAt(point)
将是这样做的方法,但由于我的简单函数根本没有被调用,所以肯定还有其他一些我没有看到的问题。
【问题讨论】:
标签: python pyqt pyqt4 qtreeview