我用
QTableView
编写了一个 PyQt 应用程序,它应该插入一个新列以响应左键单击,并删除一个列以响应鼠标右键单击其单元格。
我应该将处理程序连接到什么信号?如果我使用QAbstractItemView.clicked,我可以接收列的索引,但无法确定鼠标按钮,因为它没有接收到事件。
另一方面,如果我使用QAbstractScrollArea.mousePressEvent,我可以获得
event.button()
,但不清楚如何恢复单元格的索引。
Qt 有点让人想起薛定谔的不确定性:)
您可以使用 QApplication.mouseButtons 获取鼠标按钮的状态:
buttons = QApplication.instance().mouseButtons()
有了
mousePressEvent
,你可以使用QAbstractItemView.indexAt来获取索引:
index = tableview.indexAt(event.pos())