Seite 1 von 1
Fehler in QTableView?
Verfasst: 5. Mai 2009 15:56
von Guenther Schardinger
Bitte um Hilfe!
Ich bin dabei mich in Qt4.5 und Qt-Creator 1.0.0 einzuarbeiten. Bin begeistert vom Qt-Konzept, und der Qt-Creator funktioniert sehr gut. Die Dokumentation ist sehr gut.
Bei Vorarbeiten für ein Midi-Projekt, habe Bytes in ein QByteArrays eingelesen. Für die Hex-Anzeige habe ich eine QTableView verwendet. Funktioniert alles sofort ganz einwandfrei.
Nun das sonderbare Problem:
* Beim Anzeigen der Bytes in Grossbuchstaben, werden einzelne Werte ausgelassen.
* Der Fehler tritt nur bei grösseren Datenmengen auf.
* Die fehlenden Werte sind vom Typ 0x?D.
* Mit kleinen Buchstaben funktioniert alles wieder einwandfrei.
Ich habe versucht, den Fehler systematische einzugrenzen. Leider ohne Erfolg.
Das Programm liegt auf:
http://members.aon.at/schardinger/qt/
Danke im voraus.
Servus, Guenther
Re: Fehler in QTableView?
Verfasst: 6. Mai 2009 09:01
von neuschi
Guenther Schardinger hat geschrieben:Bitte um Hilfe!
* Beim Anzeigen der Bytes in Grossbuchstaben, werden einzelne Werte ausgelassen.
* Der Fehler tritt nur bei grösseren Datenmengen auf.
* Die fehlenden Werte sind vom Typ 0x?D.
* Mit kleinen Buchstaben funktioniert alles wieder einwandfrei.
Ich habe versucht, den Fehler systematische einzugrenzen. Leider ohne Erfolg.
Ich habe mir das Programm mal runtergeladen und hier scheint es problemlos zu funktionieren (Windows Vista, Qt 4.5)
Gib mal ein paar Informationen zu deiner Umgebung. Linux? Windows?
Was bedeutet "werden ausgelassen"? Fehlen die ganz oder wird stattdessen eine leere Zelle ausgegeben?!
\Ralf
Verfasst: 6. Mai 2009 09:14
von AuE
@neuschi:
Qt-Projekt MidiEdit:
Erstellt mit Qt 4.5, Qt Creator 1.0.0, Linux Debian 5.0 (2.6.26-1-686)
@Günther:
Hast du dichg schon mal rein gedebugt? Was fehlen die Werte im Array? Kommst du bei diesen Daten überhaupt in die Schleife/ if Bedingung rein?
Ansonsten sollte es eig gehn. Schöner wäre noch ein
Re: Fehler in QTableView?
Verfasst: 6. Mai 2009 18:58
von Guenther Schardinger
Gib mal ein paar Informationen zu deiner Umgebung. Linux? Windows?
Erstellt mit Qt 4.5, Qt Creator 1.0.0, Linux Debian 5.0 (2.6.26-1-686)
Was bedeutet "werden ausgelassen"? Fehlen die ganz oder wird stattdessen eine leere Zelle ausgegeben?!
Nein, einzelne Zellen bleiben einfach leer.
Verfasst: 6. Mai 2009 19:01
von Guenther Schardinger
AuE hat geschrieben:@neuschi:
Qt-Projekt MidiEdit:
Erstellt mit Qt 4.5, Qt Creator 1.0.0, Linux Debian 5.0 (2.6.26-1-686)
@Günther:
Hast du dichg schon mal rein gedebugt? Was fehlen die Werte im Array? Kommst du bei diesen Daten überhaupt in die Schleife/ if Bedingung rein?
Ansonsten sollte es eig gehn. Schöner wäre noch ein
Die Bytes sind sicher im Array, das habe ich sehr genau getestet.
In der Anzeige fehlen sie. Nur sehr wenige.
Re: Fehler in QTableView?
Verfasst: 6. Mai 2009 19:08
von Guenther Schardinger
neuschi hat geschrieben:Guenther Schardinger hat geschrieben:Bitte um Hilfe!
* Beim Anzeigen der Bytes in Grossbuchstaben, werden einzelne Werte ausgelassen.
* Der Fehler tritt nur bei grösseren Datenmengen auf.
* Die fehlenden Werte sind vom Typ 0x?D.
* Mit kleinen Buchstaben funktioniert alles wieder einwandfrei.
Ich habe versucht, den Fehler systematische einzugrenzen. Leider ohne Erfolg.
Ich habe mir das Programm mal runtergeladen und hier scheint es problemlos zu funktionieren (Windows Vista, Qt 4.5)
Gib mal ein paar Informationen zu deiner Umgebung. Linux? Windows?
Was bedeutet "werden ausgelassen"? Fehlen die ganz oder wird stattdessen eine leere Zelle ausgegeben?!
\Ralf
Hast du auch die Ausgabe in Grossbuchstaben mit
return s.toUpper();
getestet?
Verfasst: 6. Mai 2009 19:09
von upsala
Ich geh' jetzt mal davon aus, daß die Daten wegen zu kleiner Spaltenbreite nicht angezeigt werden. Aber Screenshot kann das sicher klären...
QByteArray
Verfasst: 6. Mai 2009 20:26
von softwaremaker
Warum ist s vom Typ QByteArray ?
Code: Alles auswählen
QByteArray s(QByteArray::number((unsigned char) Daten->at(i),16));
Sollte da nicht QString stehen? Denn die Rückgabe in QVariant soll doch sicher vom Typ QString sein.
Re: Fehler in QTableView?
Verfasst: 6. Mai 2009 21:34
von neuschi
Guenther Schardinger hat geschrieben:
Hast du auch die Ausgabe in Grossbuchstaben mit
return s.toUpper();
getestet?
Aber sicher. Hier (unter Windows) keine Probleme.
Mach mal bitte einen Screenshot wenn das Problem auftritt und versuche es 100%ig zu reproduzieren.
Wenn du das *.jpg einliest, tritt der Fehler dann bei dir auf?
\Ralf
Verfasst: 7. Mai 2009 09:02
von Guenther Schardinger
upsala hat geschrieben:Ich geh' jetzt mal davon aus, daß die Daten wegen zu kleiner Spaltenbreite nicht angezeigt werden. Aber Screenshot kann das sicher klären...
Danke!! Das war die Lösung. Damit ist die Welt wieder in Ordnung

.
Ich habe mit
tableView->resizeColumnsToContents();
die Spaltenbreite aktualisiert. Damit war es für mich erledigt. Es hat aber beim verwendeten Zeichensatz offensichtlich nicht immer funktioniert.
Das erklärt auch, dass der Fehler eher bei der Ausgabe von Bytes vom '?D' vorkam. 'D' ist einfach sehr breit. Ich habe aber eher an 0x0D (carrige return) gedacht.
Vielen Danke für eure Hilfe, ihr ward super!!
PS: Ich hoffe euch auch helfen zu können.
Verfasst: 7. Mai 2009 09:03
von AuE
bei mir läufts auch super.....
probier doch mal das aus....
Code: Alles auswählen
if (QString::compare(s.toUpper(), s, Qt::CaseInsensitive) != 0 )
qDebug() << "Error 1\n";
btw:
das geht übrigens auch