我遇到qdate和qtablewidget的问题。
当我通过连接更新qtablewdiget上的项目时,我调用了一个函数" updateProdotto"。 我在阅读插入的新qdate以及将其存储在新的qdate变量中时遇到问题。
我已经在网上搜索过,但没有结果,因为没有人按照qdate类型进行操作。
connect(ui->tableViewProdotti,SIGNAL(itemChanged(QTableWidgetItem*)),this,SLOT(updateProdotto()));
void UserInterface::updateProdotto() {
int colonna = ui->tableViewProdotti->currentColumn();
int riga = ui->tableViewProdotti->currentRow();
if(colonna == 1)
art[riga]->setNome(ui->tableViewProdotti->item(riga,1)->text().toStdString());
if(colonna == 2)
art[riga]->setCategoria(ui->tableViewProdotti->item(riga,2)->text().toStdString());
if(colonna == 5) { // this is for date
QDate date= // read date and store it
art[riga]->setDate(date);
}
}
我该怎么做?
答案 0 :(得分:0)
使用QDate::fromString
并且不要忘记指定正确的格式:
答案 1 :(得分:0)
据我了解您的问题,您将在 string 中有一个日期,现在您需要将其用作{publicID: 'da22', score: '2'}, {publicID: '17hy', score: '2'}, {publicID: 'ye66', score: '2'}
对象。在这种情况下,您应该使用QDate
静态方法解析字符串。
方法签名:
QDate:fromString
示例:
QDate QDate::fromString(const QString & string, const QString & format)
答案 2 :(得分:0)
谢谢,我已经知道“QDate :: fromstring”但在我的情况下它不起作用。我在我的项目的其他功能中使用QDate :: fromString,但在这种情况下,正确的解决方案(在阅读了你的答案后为2个小时)它:
QString format="yyyy-MM-dd";
QTableWidgetItem* date= ui->tableViewProdotti->item(riga,5);
QString text=date->text();
QDate date1=QDate::fromString(text,format);
art[riga]->setDataAcquisto(date1);
我的错误是在QTableWidgetItem指针上,格式是yyyy-MM-dd(与标准一样),在另一个函数中我使用了dd.MM.yyyy(我是欧洲人!)
感谢您的帮助,我希望这个解决方案可以帮助其他人!