читать QDate из Qtablewidget и сохранять его в QDate

У меня проблема с 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

Решение

использование QDate::fromString и не забудьте указать правильный формат:

http://doc.qt.io/qt-5/qdate.html#fromString-1

0

Другие решения

Насколько я понимаю вашу проблему, у вас будет свидание в строка и теперь вам нужно будет использовать его как 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

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 (я европеец!)

спасибо за вашу помощь, я надеюсь, что это решение может помочь другим людям!

0
По вопросам рекламы [email protected]