我对qdate和qtablewidget有问题。
当我通过连接更新qtablewdiget上的一个项目时,我调用了一个函数"updateProdotto“。在读取插入的新qdate并将其存储在新的qdate变量中时,我遇到了一个问题。
我已经在web上搜索过了,但没有结果,因为没有人使用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);
}
} 我该怎么做呢?
发布于 2016-09-02 01:07:37
使用QDate::fromString,不要忘了指定正确的格式:
http://doc.qt.io/qt-5/qdate.html#fromString-1
发布于 2016-09-02 01:12:58
据我所知,您的问题是在字符串中有一个日期,现在您需要将其用作QDate对象。在这种情况下,您应该使用QDate:fromString静态方法解析字符串。
方法签名:
QDate QDate::fromString(const QString & string, const QString & format)示例:
QDate date = QDate::fromString("1MM12car2003", "d'MM'MMcaryyyy");
// date is 1 December 2003文档:http://doc.qt.io/qt-5/qdate.html#fromString-1
发布于 2016-09-02 16:26:07
谢谢,我已经知道"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 (我是欧洲人!)
谢谢你的帮助,我希望这个解决方案能帮助其他人!
https://stackoverflow.com/questions/39276425
复制相似问题