PyQt:如何确定同时按下哪个鼠标按钮以及哪个QTableView的单元格?

问题描述 投票:0回答:1

我用

QTableView
编写了一个 PyQt 应用程序,它应该插入一个新列以响应左键单击,并删除一个列以响应鼠标右键单击其单元格。

我应该将处理程序连接到什么信号?如果我使用QAbstractItemView.clicked,我可以接收列的索引,但无法确定鼠标按钮,因为它没有接收到事件。

另一方面,如果我使用QAbstractScrollArea.mousePressEvent,我可以获得

event.button()
,但不清楚如何恢复单元格的索引。

Qt 有点让人想起薛定谔的不确定性:)

python events pyqt mouse qtableview
1个回答
2
投票

您可以使用 QApplication.mouseButtons 获取鼠标按钮的状态:

    buttons = QApplication.instance().mouseButtons()

有了

mousePressEvent
,你可以使用QAbstractItemView.indexAt来获取索引:

    index = tableview.indexAt(event.pos())
© www.soinside.com 2019 - 2024. All rights reserved.