gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 04:07:55 25 4
gpt4 key购买 nike

您好,我不明白为什么在填充 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com