QTableWidget 点击单元格显示一个复合控件的C++代码
时间: 2024-01-22 17:20:01 浏览: 101
C++ 代码提示控件
以下是一个示例代码,可以在 QTableWidget 单元格中显示一个复合控件(QComboBox 和 QLabel):
```cpp
#include <QApplication>
#include <QTableWidget>
#include <QComboBox>
#include <QLabel>
#include <QHBoxLayout>
#include <QVBoxLayout>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 创建 QTableWidget 实例
QTableWidget tableWidget;
tableWidget.setWindowTitle("QTableWidget Demo");
// 设置表格行列数
tableWidget.setRowCount(2);
tableWidget.setColumnCount(2);
// 创建一个复合控件
QWidget *widget = new QWidget();
QHBoxLayout *layout = new QHBoxLayout(widget);
QComboBox *comboBox = new QComboBox();
comboBox->addItem("Option 1");
comboBox->addItem("Option 2");
QLabel *label = new QLabel("Selected Option:");
layout->addWidget(label);
layout->addWidget(comboBox);
// 在表格中添加复合控件
tableWidget.setCellWidget(0, 0, widget);
tableWidget.setItem(0, 1, new QTableWidgetItem("Item 1"));
tableWidget.setItem(1, 0, new QTableWidgetItem("Item 2"));
tableWidget.setItem(1, 1, new QTableWidgetItem("Item 3"));
// 显示表格
tableWidget.show();
return a.exec();
}
```
这个示例代码创建了一个 QTableWidget 实例,并设置了表格的行列数。然后,创建了一个复合控件,其中包含了一个 QComboBox 和一个 QLabel,用于显示当前选中的选项。最后,将复合控件添加到表格的第一行第一列中,并在其他单元格中添加了一些文本项。
阅读全文