Seite 1 von 1

[gelöst]Objekt aus einem Struct im QTableWidget verwenden

Verfasst: 23. November 2007 19:23
von daRonny
Ich habe die Liste gefüllt mit Namen und Sizegrößen. Wie kann ich nun im unteren Code die Daten aus dem Struct in die Liste eintragen. Im jetzigen Zustand, wird das angezeigt. Keine Ahnung was es zu bedeuten hat.

Struct:

Code: Alles auswählen

  struct File
		{
		    File() : size(0) {}
		    QString fullPath;
		    int size;
		    QByteArray md5;
		};
Struct wird beschrieben:

Code: Alles auswählen

 QFileInfo file_info(files_and_dirs[i]);
            File f;
            f.fullPath = files_and_dirs[i];
            f.size = file_info.size();
            Layout::mFilesFound.append(f);
Verwendung:

Code: Alles auswählen

 File f;
        QString s = f.fullPath[i];
        int filesize = f.size;

        QTableWidgetItem* newItem = new QTableWidgetItem(s,filesize);
          
        int numRows = mForm.output2->rowCount();
        mForm.output2->setRowCount( numRows + 1 );
        int column = 0;
        mForm.output2->setItem(numRows, column, newItem);

Re: Objekt aus einem Struct im QTableWidget verwenden

Verfasst: 26. November 2007 07:35
von macman
daRonny hat geschrieben:

Code: Alles auswählen

        QTableWidgetItem* newItem = new QTableWidgetItem(s,filesize);
Welcher Konstruktor soll das denn sein? Ein TableWidgetItem entspricht nur einer Zelle der Tabelle, Du scheinst aber gleich die Werte von zwei Zellen übergeben zu wollen.

Verfasst: 26. November 2007 08:44
von solarix
ausserdem kann der inhalt irgendwas sein, denn aus

Code: Alles auswählen

 File f;
 [...]
 f.fullPath = files_and_dirs[i];  // fullPath ist ein QString...
 [...]
 QString s = f.fullPath[i]; 
können wir nicht erkennen, was da drin sein soll... was für ein Char (!!!) erwartest du denn an Index "i"?

Verfasst: 26. November 2007 13:52
von daRonny
Ah... ich hab die Lösung.

Ich hab versucht aus einem struct welches jedoch nicht initialisiert wurde einen Wert herauszunehmen.

Die richtige Lösung ist nun :

Code: Alles auswählen

File f = mFilesFound[i];
QString s = f.fullPath;


// Nun werden die Strings richtig ausgegeben.

DANKE jedoch für eure Hilfe !!