0

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

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

    tableView->setModel(&mymodel);

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

请帮忙

4

1 回答 1

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

于 2013-07-26T17:52:10.667 回答