qt QTableWidget 点击单元格 设置长时间选中
时间: 2024-12-08 07:11:54 浏览: 13
在Qt中使用QTableWidget时,如果希望点击单元格后能够长时间选中,可以通过对QTableWidget进行信号槽连接,并设置选中状态来实现。以下是一个示例代码,展示如何实现这一功能:
```cpp
#include <QTableWidget>
#include <QHeaderView>
#include <QApplication>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QTableWidget tableWidget(5, 3); // 5行3列
tableWidget.setWindowTitle("QTableWidget 示例");
// 设置表头
QStringList headers;
headers << "列1" << "列2" << "列3";
tableWidget.setHorizontalHeaderLabels(headers);
// 填充数据
for (int row = 0; row < 5; ++row) {
for (int column = 0; column < 3; ++column) {
QTableWidgetItem *item = new QTableWidgetItem(QString("项 %1,%2").arg(row).arg(column));
tableWidget.setItem(row, column, item);
}
}
// 连接信号槽
QObject::connect(&tableWidget, &QTableWidget::cellClicked, [&](int row, int column){
// 设置选中的单元格
tableWidget.setCurrentCell(row, column);
// 设置选中状态为长时间选中
tableWidget.item(row, column)->setSelected(true);
});
tableWidget.show();
return app.exec();
}
```
在这个示例中,我们首先创建了一个QTableWidget,并设置了表头和数据。然后,我们通过连接`cellClicked`信号到一个Lambda函数来实现点击单元格后设置长时间选中的效果。
阅读全文