将模型分配给tableview并创建行和列

时间:2013-07-26 15:30:06

标签: c++ qt qt-creator

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

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

    tableView->setModel(&mymodel);

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

请帮助

1 个答案:

答案 0 :(得分:0)

如果您已使用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。将QTableWidget添加到您的UI,然后您可以

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的文档