将模型分配给表视图并创建行和列

assigning model to tableview and creating rows and columns

本文关键字:创建 视图 模型 分配      更新时间:2023-10-16

我是Qt创建者的新手。我想使用QmodelIndex创建一个包含1行2列的表View。将模型分配给tableView并创建数据时出错。

QTableView* const tableView
            = { htca_ui->tableView,
                 };
    tableView->setModel(&mymodel);

如何使用QmodelIndex创建模型并分配给视图以创建具有2列的行?

请帮助

如果您已经使用UI设计器添加了tableView,则不需要在代码中再次创建它。假设你的QTableView被称为tableView,而htca_ui是你的ui指针,你可以进行

htca_ui->tableView->setModel(&mymodel);

编辑:我突然想到&mymodel意味着您在堆栈上创建它,这可能不是最好的主意。更好的做法:

MyModel *mymodelinstance = new MyModel(this);
htca_ui->tableView->setModel(mymodelinstance);

但是:模型类的使用可能很复杂。如果你只是想要一个代码最少的简单表格,我建议你使用QTableWidget,而不是QTableView。在你的UI中添加一个QTableWidget,然后你就可以进行

htca_ui->tableWidget->setRowCount(1);
htca_ui->tableWidget->setColumnCount(2);
QTableWidgetItem *item = new QTableWidgetItem("An Item");
htca_ui->tableWidget->setItem(0,0, item); // The item at the top left will read "An Item".

有关更多信息,请参阅QTableWidget的文档