用QT生成代码,满足以下要求:1、用Qtablewidget创建一个3行3列的表格,点击某一单元格后设置背景颜色为蓝色。2、单次只能点击一个单元格,点击另一个单元格后原先单元格恢复原来的格式
时间: 2023-04-10 07:01:25 浏览: 99
可以回答这个问题。以下是代码示例:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTableWidget table(3, 3);
table.setSelectionBehavior(QAbstractItemView::SelectItems);
table.setSelectionMode(QAbstractItemView::SingleSelection);
table.setEditTriggers(QAbstractItemView::NoEditTriggers);
for (int row = 0; row < 3; ++row) {
for (int col = 0; col < 3; ++col) {
QTableWidgetItem *item = new QTableWidgetItem(QString("%1,%2").arg(row).arg(col));
table.setItem(row, col, item);
}
}
QObject::connect(&table, &QTableWidget::cellClicked, [&](int row, int col) {
for (int r = 0; r < 3; ++r) {
for (int c = 0; c < 3; ++c) {
QTableWidgetItem *item = table.item(r, c);
if (item) {
item->setBackground(QBrush());
}
}
}
QTableWidgetItem *item = table.item(row, col);
if (item) {
item->setBackground(QBrush(Qt::blue));
}
});
table.show();
return app.exec();
}
```
这段代码使用了 `QTableWidget` 创建了一个 3 行 3 列的表格,并设置了单元格的选择模式为单选。当用户点击某个单元格时,会将该单元格的背景颜色设置为蓝色,并将其它单元格的背景颜色恢复为默认值。
阅读全文