2016-09-01 4 views
0

Ich habe ein Problem mit qdate und qtablewidget.QDate von Qtablewidget lesen und auf QDate speichern

Wenn ich ein Element auf einem qtablewdiget durch eine Verbindung aktualisieren, rufe ich eine Funktion "updateProdotto". Ich habe ein Problem beim Lesen des neuen qdate, das ich einfügen und in einer neuen qdate-Variable speichern.

Ich habe bereits im Internet gesucht, aber ohne Ergebnisse, weil niemand die Operation, die ich mit dem qdate-Typ brauchte.

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

Wie kann ich das tun?

Antwort

0

Soweit ich Ihr Problem zu verstehen, würden Sie ein Datum in String haben und jetzt würden Sie brauchen, es zu benutzen als ein QDate Objekt. In diesem Fall sollten Sie die Zeichenfolge mit der statischen Methode QDate:fromString analysieren.

Methode Unterschrift:

QDate QDate::fromString(const QString & string, const QString & format) 

Beispiel:

QDate date = QDate::fromString("1MM12car2003", "d'MM'MMcaryyyy"); 
// date is 1 December 2003 

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

0

danke, ich weiß schon, über "QDate :: vonString", aber in meinem Fall ist es doesn‘ t arbeiten. Ich benutze QDate :: vonString in anderer Funktion von meinem Projekt, aber in diesem Fall der richtigen Lösung (2 Uhr für sie nach Ihren Antworten lesen) seine:

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

Mein Fehler war auf QTableWidgetItem Zeiger und das Format JJJJ- MM-dd (wie Standard) und in der anderen Funktion habe ich dd.MM.yyyy (ich bin europäisch!)

danke für Ihre Hilfe, ich hoffe, diese Lösung kann anderen Menschen helfen!

Verwandte Themen