2012-12-01 91 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

我知道我必須失去了一些東西超級簡單。非常感謝!! –

相關問題