C++ 如何将qdate添加到qtableview

C++ 如何将qdate添加到qtableview,c++,qt,qtableview,qdatetime,C++,Qt,Qtableview,Qdatetime,我想将Qdate添加到我的表中,比如说QTableview。问题是如果我将其转换为字符串,我可以添加和检索数据。但我只想在模型中存储为日期 void MainWindow::setUpTabel() { QDateTime myDate; myDate.setDate(QDate::currentDate()); //myModel QStandardItemModel model = new QStandardItemModel(this); QStandard

我想将
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);
 }

问题是我无法在表中看到日期。

如文档所述,必须将项目设置到模型中,指定要设置项目的行和列

修改您的代码:

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);
 }

如文档所述,必须将项设置到模型中,指定要在其中设置项的行和列

修改您的代码:

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);
 }

也许你需要改用
Qt::DisplayRole
?是的,但这意味着qdate是一个字符串。我只想要日期类型的,不完全是。它将以字符串形式显示,但在内部存储为QVariant,您可以使用data()函数获取它。是的,谢谢,但是如果我使用QVariant::canconvert()检查单元格是否有日期,它将显示false。什么叫canconvert()打开?也许您需要使用
Qt::DisplayRole
?是的,但这意味着qdate是一个字符串。我只想要日期类型的,不完全是。它将以字符串形式显示,但在内部存储为QVariant,您可以使用data()函数获取它。是的,谢谢,但是如果我使用QVariant::canconvert()检查单元格是否有日期,它将显示为false。如何调用canconvert()?