qt - 为什么 MyModel::data() 没有被调用(子类化 QSqlQueryModel)

标签 qt view model qtableview model-view

您好,我不明白为什么在填充 QTableView 时从未调用我的 data() 函数

我继承了 QSqlQueryModel。标题如下:

class TicketModel : public QSqlQueryModel
{
    Q_OBJECT
public:
    explicit TicketModel(QObject *parent = 0);

    QVariant data(const QModelIndex &index, int role);
    QVariant headerData(int section, Qt::Orientation orientation, int role) const;

};

在主窗口中,我将模型设置为表格

TicketModel *model = new TicketModel();
QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this);
proxyModel->setSourceModel(model);

QSqlQuery *query = _tf->search(1); 
model->setQuery(*query); 

_ui->dashTable->setModel(proxyModel);    // <<<<<<<<<<<<<< I setting model here too, didn't work
_ui->dashTable->setSortingEnabled(true);              
_ui->dashTable->horizontalHeader()->setVisible(true);  
_ui->dashTable->setSelectionBehavior(QAbstractItemView::SelectRows);

TicketModel::headerData(...) 被调用,但 TicketModel::data(...) 在创建表时从未被调用。为什么?我怎样才能让它被调用?

我希望我只是忽略了一些简单的事情,但我已经尝试了几个小时才弄明白。

感谢您的帮助!

最佳答案

您的签名有误。你需要一个常量。

QVariant 数据( const QModelIndex & index, int role = Qt::DisplayRole ) const

关于qt - 为什么 MyModel::data() 没有被调用(子类化 QSqlQueryModel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13664455/

相关文章:

android - 错误构建 APK QT Creator - 构建 android 包失败

java - 您的模型对象实现行为(接口(interface))的设计不好吗?

iphone - 从 View Controller 访问模型?

ruby-on-rails - rails : define column names to model

c++ - 当小部件看不见时的 Qt 事件

c++ - 如何在qt中调试xcode项目?

c++ - Qt - QGridLayout 访问坐标处的元素

java - Android 创建显示 View

sql - 在 SQL Server 中,表添加一列。导致 View 错误

view - Rails 应用程序路由在引擎中不可用