在QTableWidget中单独处理单击并双击

时间:2012-07-16 11:28:22

标签: qt

我的应用程序中有一个QTableWidget小部件。我必须在我的应用程序中单独处理单击和双击鼠标事件。现在,即使双击单元格,也只会调用单击插槽。我该如何单独处理它们?

以下是信号插槽连接的代码:

connect(ui.tableWidget, SIGNAL(cellClicked(int, int)), this, SLOT(myCellClicked(int, int)));
connect(ui.tableWidget, SIGNAL(itemDoubleClicked(QTableWidgetItem*)), this, SLOT(tableItemClicked(QTableWidgetItem*)));

我在这里缺少任何其他配置吗?

1 个答案:

答案 0 :(得分:4)

哦,我知道了。我几周前遇到过类似的问题。问题出在你的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)));

在你的tableItemClicked插槽中这样做:

void MyWidget::tableItemClicked(int row, int column)
{
    QTableWidgetItem *item = new QTableWidgetItem;
    item = myTable->item(row,column)
    /* do some stuff with item */
}