QTableWidget
我的应用程序中有一个小部件。我必须在我的应用程序中分别处理单击和双击鼠标事件。现在,即使我双击一个单元格,也只调用一次单击槽。如何分别处理?
以下是信号插槽连接的代码:
connect(ui.tableWidget, SIGNAL(cellClicked(int, int)), this, SLOT(myCellClicked(int, int)));
connect(ui.tableWidget, SIGNAL(itemDoubleClicked(QTableWidgetItem*)), this, SLOT(tableItemClicked(QTableWidgetItem*)));
Run Code Online (Sandbox Code Playgroud)
我在这里缺少任何其他配置吗?
Okey,现在我明白了。几周前我也遇到过类似的问题。问题出在您的QTableWidgetItem中。我不知道它是如何工作的,但是有时您会错过您的项目并单击单元格。这样便可以解决它。以这种方式连接:
connect(ui.tableWidget, SIGNAL(cellClicked(int, int)), this, SLOT(myCellClicked(int, int)));
connect(ui.tableWidget, SIGNAL(cellDoubleClicked(int,int)), this, SLOT(tableItemClicked(int,int)));
Run Code Online (Sandbox Code Playgroud)
然后在您的tableItemClicked插槽中执行以下操作:
void MyWidget::tableItemClicked(int row, int column)
{
QTableWidgetItem *item = new QTableWidgetItem;
item = myTable->item(row,column)
/* do some stuff with item */
}
Run Code Online (Sandbox Code Playgroud)