Fehler in QTableView?
-
Guenther Schardinger
- Beiträge: 6
- Registriert: 2. Mai 2009 17:34
- Wohnort: A8793, Trofaiach
Fehler in QTableView?
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
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?
Ich habe mir das Programm mal runtergeladen und hier scheint es problemlos zu funktionieren (Windows Vista, Qt 4.5)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.
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
@neuschi:
@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
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
Code: Alles auswählen
return QVariant(s);-
Guenther Schardinger
- Beiträge: 6
- Registriert: 2. Mai 2009 17:34
- Wohnort: A8793, Trofaiach
Re: Fehler in QTableView?
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.
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.
-
Guenther Schardinger
- Beiträge: 6
- Registriert: 2. Mai 2009 17:34
- Wohnort: A8793, Trofaiach
Die Bytes sind sicher im Array, das habe ich sehr genau getestet.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 einCode: Alles auswählen
return QVariant(s);
In der Anzeige fehlen sie. Nur sehr wenige.
-
Guenther Schardinger
- Beiträge: 6
- Registriert: 2. Mai 2009 17:34
- Wohnort: A8793, Trofaiach
Re: Fehler in QTableView?
Hast du auch die Ausgabe in Grossbuchstaben mitneuschi hat geschrieben:Ich habe mir das Programm mal runtergeladen und hier scheint es problemlos zu funktionieren (Windows Vista, Qt 4.5)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.
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
return s.toUpper();
getestet?
-
softwaremaker
- Beiträge: 149
- Registriert: 1. April 2009 19:25
QByteArray
Warum ist s vom Typ QByteArray ?
Sollte da nicht QString stehen? Denn die Rückgabe in QVariant soll doch sicher vom Typ QString sein.
Code: Alles auswählen
QByteArray s(QByteArray::number((unsigned char) Daten->at(i),16));Re: Fehler in QTableView?
Aber sicher. Hier (unter Windows) keine Probleme.Guenther Schardinger hat geschrieben:
Hast du auch die Ausgabe in Grossbuchstaben mit
return s.toUpper();
getestet?
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
-
Guenther Schardinger
- Beiträge: 6
- Registriert: 2. Mai 2009 17:34
- Wohnort: A8793, Trofaiach
Danke!! Das war die Lösung. Damit ist die Welt wieder in Ordnungupsala 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...
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.
bei mir läufts auch super.....
probier doch mal das aus....
btw:
das geht übrigens auch
probier doch mal das aus....
Code: Alles auswählen
if (QString::compare(s.toUpper(), s, Qt::CaseInsensitive) != 0 )
qDebug() << "Error 1\n";das geht übrigens auch
Code: Alles auswählen
QByteArray::number(n, 16).toUpper(); // returns "3F"