需求:使用Qt软件编写一个完整示例,示例设计一个界面包含3行3列的表格,只在第一列表格的单元格中插入复选框,复选框要求在单元格中居中显示。
实现效果:
完整代码如下:
#include <QApplication>
#include <QWidget>
#include <QTableWidget>
#include <QTableWidgetItem>
#include <QCheckBox>
#include <QVBoxLayout>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 创建主窗口
QWidget window;
window.setWindowTitle("表格示例");
// 创建布局
QVBoxLayout* layout = new QVBoxLayout(&window);
// 创建表格
QTableWidget* tableWidget = new QTableWidget(3, 3, &window);
tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); // 禁止编辑
// 设置第一列单元格的复选框并居中显示
for (int row = 0; row < 3; row++) {
QTableWidgetItem* item = new QTableWidgetItem();
tableWidget->setItem(row, 0, item);
QCheckBox* checkBox = new QCheckBox();
checkBox->setStyleSheet("margin-left:50%; margin-right:50%;");
tableWidget->setCellWidget(row, 0, checkBox);
}
// 将表格添加到布局中
layout->addWidget(tableWidget);
// 显示窗口
window.show();
return app.exec();
}
注:感谢测试过程中AI(123Bot聊天机器人)给予的帮助。