我有一个 QTableView,左键和右键单击鼠标都会导致一些工作。
右键单击应启动上下文菜单,左键应打开另一个进程。
为此,我在 QMainWindow 中使用以下连接
connect(Table , SIGNAL( customContextMenuRequested( const QPoint& ) ),this, SLOT( tableContextMenu( const QPoint& ) ) );
connect(Table , SIGNAL (clicked ( const QModelIndex&)), this, SLOT(test()));
问题很简单。由于我使用clicked()
信号来捕获左键单击 - 右键单击也被捕获。因此,如果我单击右键单击按钮以及上下文菜单,则为左键单击保留的操作也会发生。
我该如何避免这种情况?好心提醒。谢谢。
编辑
我的代码设置如下:
Table = new QTableView(this);
TableLayout *t = new TableLayout();
Table->setModel(t);
Table->setContextMenuPolicy(Qt::CustomContextMenu);
connect(Table , SIGNAL( customContextMenuRequested( const QPoint& ) ),this, SLOT( tableContextMenu( const QPoint& ) ) );
这就是我对右键单击上下文菜单的操作方式,所有内容都在P14MainWindow
构造函数中定义,构造函数是QMainWindow
. 现在我应该在哪里重新实现MouseReleaseEvent
?