c++ - 创建自定义模型是按名称访问表中数据的方式吗?

标签 c++ qt qt4

假设我有一个包含 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

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

关于c++ - 创建自定义模型是按名称访问表中数据的方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7960568/

相关文章:

c++ - 使用 Boost 处理流

c++ - Qt找不到平台插件cocoa

c++ - QSignalMapper 和原始 Sender()

qt - 帮忙推荐Qt开源项目

c++ - 异步共享内存读/写

c++ - 所有 C++ 定点运算都是确定性的吗?

c++ - 重新定义符号的算法如何工作?

c++ - 使用模型作为 QMenu 的源

c++ - Qt 未定义对 `pugi::xml_document::xml_document()` 的引用

qt4 - cmake 中的 ${QT_LIBRARIES}