假设我有一个包含10列的QTableWidget。我在表中设置数据

  QTableWidgetItem* textItem1 = new QTableWidgetItem;
  textItem1->setData(Qt::DisplayRole, 20);
  this->tableWidget->setItem(row, col, textItem1);


问题是,如果使用QtDesigner更改表中列的顺序或标题,则必须遍历代码并更改所有列号。我宁愿做这样的事情:

  QTableWidgetItem* textItem1 = new QTableWidgetItem;
  textItem1->setData(Qt::DisplayRole, "Smith");
  this->tableWidget->setLastName(row, textItem1);


将“ Smith”添加到“ LastName”列中,而无需知道当前LastName是哪个列索引。使用自定义模型可以做到这一点吗?我调查了QAbstractTableModel,但不了解如何提供对数据的命名访问?谁能简要解释一个人将如何做?如果这是合理/常见的事情,该怎么办?

谢谢。

最佳答案

我发布了一个使用QAbstractTableModel的示例:

http://programmingexamples.net/index.php?title=Qt/ModelView/QAbstractTableModel

如您所见,数据只是存储在成员变量中,因此可以根据需要进行访问。

10-05 23:46