qt - 在 QTableWidget 中分别处理单击和双击

标签 qt

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

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

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

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

最佳答案

好的,现在我明白了。几周前我遇到了类似的问题。问题出在您的 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 */
}

关于qt - 在 QTableWidget 中分别处理单击和双击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11503313/

相关文章:

qt - 如何在 QtControls 2.0 中为 SpinBox 设置对齐方式?

c++ - Qt 中奇怪的光标行为

qt - QNetworkAccessManager 从不同的线程获取/发布可能吗?

c++ - 将 QVector 从信号传递到不同线程中的槽会导致数据复制吗?

c++ qt dll 不在好文件夹中

c++ - 带有像素图的 QLabel : prevent pixmap's color change in disabled state

c++ - 如何在命令行上使用 Qt 进行是/否对话?

QT/QML Android 应用,点击通知栏打开应用

c++ - QTimer 不会前进屏幕

c++ - 当鼠标悬停在 QPushButton 上时,alpha 级别为 0% 的 QPushButton 变为实心。如何用 C++ 修复 Qt(用样式表?)