3

こんにちはdata()QTableViewにデータを入力するときに関数が呼び出されない理由がわかりません

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(...)ますが、テーブルの作成時に呼び出されることはありません。なんで?どうすれば呼び出せますか?

単純なことを見落としていたといいのですが、それを理解するために数時間努力してきました。

助けてくれてありがとう!

4

1 に答える 1

3

署名が間違っています。constが必要です。

QVariant data(const QModelIndex&index、int role = Qt :: DisplayRole)const

于 2012-12-01T23:25:01.950 に答える