2014-01-20 45 views
2

我想將Qdate添加到我的表格中,例如QTableview。問題是如果我將它轉換爲字符串,我可以添加和檢索數據。但是我想僅在我的模型中存儲日期。如何將qdate添加到qtableview

void MainWindow::setUpTabel() 
{ 
    QDateTime myDate; 
    myDate.setDate(QDate::currentDate()); 
    //myModel 
    QStandardItemModel model = new QStandardItemModel(this); 
    QStandardItem *item = new QStandardItem; 
    item.setData(myDate,Qt::UserRole); 
    //Myview is also created and set the model to it 
    m_tableView->setModel(model); 
} 

問題是我不能在我的表中看到日期。

+0

也許你需要使用'Qt的:: DisplayRole'呢? – vahancho

+0

是的,但這意味着說,qdate是一個字符串。我希望它只是日期類型。 –

+1

不完全。它將以字符串形式顯示,但在內部將其存儲爲QVariant,您可以使用data()函數獲取它。 – vahancho

回答

0

正如文檔所述,您必須將項目設置到指定行和列的模型中,以便設置項目。

http://qt-project.org/doc/qt-4.8/qstandarditemmodel.html

修改代碼:

void MainWindow::setUpTabel() 
{ 
    int row = 0, column = 0; // here you decide where is the item 

    QDateTime myDate; 
    myDate.setDate(QDate::currentDate()); 

    QStandardItemModel model = new QStandardItemModel(this); 
    QStandardItem *item = new QStandardItem(myDate); 

    model.setItem(row, column, item); 

    m_tableView->setModel(model); 
}