调试数据方法 qabstracttablemodel

Posted

技术标签:

【中文标题】调试数据方法 qabstracttablemodel【英文标题】:debug data method qabstracttablemodel 【发布时间】:2012-06-06 13:23:21 【问题描述】:

我将 QAbstractTableModel 子类化以在表格视图中显示高分列表。我的数据不显示。我发现没有调用data方法。 headerData , rowCount , columnCount 被调用并且似乎工作正常。我的问题是如何调试这个问题,有谁知道在qt源代码的哪里插入断点来调试这个错误?

【问题讨论】:

你是发出dataChanged(....),还是rowsInserted(....)等来通知视图模型不同? 还要仔细检查您实际上是否正确地覆盖了数据函数(函数constness 之类的东西很容易被忽视,并可能导致您尝试覆盖虚函数失败) 我没有发出任何信号。我的数据根本没有改变。我构建了所有模型,并将其传递给设置模型的表格视图。我应该进行一些初始化以查看数据吗? 这是我的数据函数 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; 您是否实现了以下功能:index()parent()rowCount()columnCount()data() 【参考方案1】:

我发现了问题。这是我构建模型的方式。我在做

ScoreTableModel pstm(0,pscores);,其中 pscores 是 QList * scoreTableView->setModel(&pstm);

当前使用的版本是: m_pScoreTableModel = new ScoreTableModel(0, pscores); scoreTableView->setModel(m_pScoreTableModel); 其中 m_pScoreTableModel 是 ScoreTableModel*

有人知道我为什么会有这种奇怪的行为吗?会不会是因为这个QList *其实就是要显示的表格的内容?

【讨论】:

这很简单。第一种方法在堆栈上创建模型。一旦您退出该范围,模型就会被销毁。你拥有模型,视图拥有模型。如果你销毁模型,视图将没有任何显示!

以上是关于调试数据方法 qabstracttablemodel的主要内容,如果未能解决你的问题,请参考以下文章

VC的常用调试方法

如何无线调试Android应用

sscom串口网络数据调试器使用post方法向华为云obs桶上传文件和图片

安卓开发之不通过USB数据线调试的方法

linux 数据备份(NFS映射方法)——问题调试篇

会员管理实战教程09-低码中的调试方法