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