以下是一个简单的 Qt Model/View 示例,它使用 QStandardItemModel 类来创建一个带有表头和数据的表格视图:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建标准项目模型
QStandardItemModel model(4, 3);
// 设置表头
QStringList labels;
labels << "Name" << "Age" << "Gender";
model.setHorizontalHeaderLabels(labels);
// 添加数据
QList<QStandardItem *> row1 = {new QStandardItem("John"), new QStandardItem("25"), new QStandardItem("Male")};
QList<QStandardItem *> row2 = {new QStandardItem("Jane"), new QStandardItem("30"), new QStandardItem("Female")};
QList<QStandardItem *> row3 = {new QStandardItem("Bob"), new QStandardItem("45"), new QStandardItem("Male")};
QList<QStandardItem *> row4 = {new QStandardItem("Alice"), new QStandardItem("20"), new QStandardItem("Female")};
model.setItem(0, 0, row1.at(0));
model.setItem(0, 1, row1.at(1));
model.setItem(0, 2, row1.at(2));
model.setItem(1, 0, row2.at(0));
model.setItem(1, 1, row2.at(1));
model.setItem(1, 2, row2.at(2));
model.setItem(2, 0, row3.at(0));
model.setItem(2, 1, row3.at(1));
model.setItem(2, 2, row3.at(2));
model.setItem(3, 0, row4.at(0));
model.setItem(3, 1, row4.at(1));
model.setItem(3, 2, row4.at(2));
// 创建表格视图
QTableView view;
view.setModel(&model);
// 显示窗口
QMainWindow window;
window.setCentralWidget(&view);
window.show();
return app.exec();
}
上面的代码创建了一个 4 行 3 列的表格,其中第一行是表头,后面三行是数据。它使用 QList 和 QStandardItem 类来添加数据,然后将模型设置为表格视图的数据源,并在主窗口中显示该视图。您可以运行这个例子并尝试编辑单元格,看看如何使用 Qt Model/View 框架来处理和显示数据。