我是Qt创作者的新手。 我想使用QmodelIndex创建一个包含1行和2列的表视图。 将模型分配给tableView并创建数据时出错。
QTableView* const tableView
= { htca_ui->tableView,
};
tableView->setModel(&mymodel);
如何使用QmodelIndex创建模型并分配给视图以创建包含2列的行?
请帮助
答案 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的文档