2014-01-20 3 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

Как указано в документации, вы должны установить элемент в модель с указанием строки и columng, где вы собираетесь установить элемент.

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); 
} 
Смежные вопросы