2012-12-01 4 views
2

Привет Я не могу понять, почему моя data() функция никогда не вызывается при наполнении QTableViewПочему MyModel :: данные() не вызывается (подклассов QSqlQueryModel)

I подклассы 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(...) никогда не вызывается при создании таблицы. Зачем? Как я могу заставить его называться?

Надеюсь, я просто пропустил что-то простое, но я пробовал несколько часов, чтобы понять это.

Спасибо за помощь!

ответ

2

У вас есть подпись неправильная. Вам нужна константа.

QVariant данных (Const QModelIndex & индекс, внутр роль = Qt :: DisplayRole) сопзЬ

+0

Я знал, что должен был быть что-то супер просто отсутствует. Огромное спасибо!! –

 Смежные вопросы

  • Нет связанных вопросов^_^