2012-12-01 62 views
2

您好我想不通为什么填充QTableView中为什么为MyModel ::数据()没有被调用(继承QSqlQueryModel)

,当我子类QSqlQueryModel我data()功能不会被调用。标题是这样的:

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

你签名错误。你需要一个const。

的QVariant数据(常量QModelIndex &指数,诠释角色= Qt的:: DisplayRole)const的

+0

我知道我必须失去了一些东西超级简单。非常感谢!! –

相关问题