如何将 qdate 添加到 qtableview
Posted
技术标签:
【中文标题】如何将 qdate 添加到 qtableview【英文标题】:How to add qdate to qtableview 【发布时间】:2014-01-20 07:33:45 【问题描述】:我想将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);
问题是我无法在表格中看到日期。
【问题讨论】:
也许您需要改用Qt::DisplayRole
?
是的,但这意味着 qdate 是一个字符串。我希望它只是日期类型。
不完全是。它将作为字符串可见,但在内部存储为 QVariant,您可以使用 data() 函数获取它。
是的,谢谢,但如果我使用 QVariant::canconvert() 检查单元格是否有日期,它将显示为 false。
canConvert() 调用什么?
【参考方案1】:
如文档所述,您必须将项目设置到模型中,指定要设置项目的行和列。
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);
【讨论】:
以上是关于如何将 qdate 添加到 qtableview的主要内容,如果未能解决你的问题,请参考以下文章
日期与时间控件QDate, QTime, QDateTime