C++ 将模型指定给tableview并创建行和列

C++ 将模型指定给tableview并创建行和列,c++,qt,qt-creator,C++,Qt,Qt Creator,我是Qt创造者的新手。 我想使用QmodelIndex创建一个包含1行和2列的表视图。 将模型指定给tableView和创建数据时出错 QTableView* const tableView = { htca_ui->tableView, }; tableView->setModel(&mymodel); 如何创建模型并指定给视图,以使用QmodelIndex创建包含两列的行 如果已使用UI设计器添加了ta

我是Qt创造者的新手。 我想使用QmodelIndex创建一个包含1行和2列的表视图。 将模型指定给tableView和创建数据时出错

QTableView* const tableView
            = { htca_ui->tableView,
                 };

    tableView->setModel(&mymodel);
如何创建模型并指定给视图,以使用QmodelIndex创建包含两列的行


如果已使用UI设计器添加了tableView,则无需在代码中再次创建,请提供帮助。假设您的QTableView被称为tableView,并且htca_ui是您的ui指针,您可以这样做

htca_ui->tableView->setModel(&mymodel);
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".
编辑:我觉得&mymodel意味着你在堆栈上创建它,这可能不是最好的主意。更好的做法是:

MyModel *mymodelinstance = new MyModel(this);
htca_ui->tableView->setModel(mymodelinstance);
但是:模型类的使用可能很复杂。如果您只是想要一个代码最少的简单表,我建议使用QTableWidget而不是QTableView。在UI中添加一个QTableWidget,然后您就可以

htca_ui->tableView->setModel(&mymodel);
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".
有关更多信息,请参阅文档