Hex Viewer

Verschiedenes zu Qt
Antworten
tomato
Beiträge: 1
Registriert: 21. September 2010 20:34

Hex Viewer

Beitrag von tomato »

Hallo,

ich versuche gerade Qt zu erlernen und moechte aus diesem Grund einen kleinen `hex viewer' entwerfen. Ich wuerde mir eine dreispaltige Darstellung in der Form Adresse, Bytes, ASCII-Text wuenschen. Eine Zeile koennte beispielsweise wie folgt aussehen:

Code: Alles auswählen

0000:0000 | 25 50 40 46 00 [...] 00 | %PDF [...]
Die Spaltenbreite sollte aenderbar sein.

(1) Welches Widget verwende ich am besten? Drei mal QTextEdit durch ein QLayout zusammengehalten?

(2) Wie befuelle ich die Daten in das Widget? Ein ganzes File auf einmal einzulesen und im Speicher zu halten, wird wohl nur fuer kleine Files funktionieren. Andererseits, koennte ich auch nur soviele Bytes einlesen wie auf den Bildschirm passen und den Rest nach Bedarf dynamisch nachladen. In diesem Fall muesste ich dem Widget irgendwie sagen wie lange die Scrollleisten sein sollte und was passiert, wenn man ueber den eingelesen Bereich scrollt. Kann das Qt bereits?

Vielen Dank!
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Eine Möglichkeit wäre ein eigenes Model und eine eigene View zu erstellen. Nur ob das für den Anfang so leicht ist, must du für dich selbst entscheiden.
androphinx
Beiträge: 170
Registriert: 26. Januar 2009 09:19
Wohnort: 127.0.0.2

Beitrag von androphinx »

(1) Ich würde dir empfehlen ein QTextEdit mit einer Schriftart wie Courier zu nehmen, und als erstes immer nur die Bytes anzeigen, dann vor jede Zeile eine entsprechende Adresse und später dazwischen eine Hex-Umwandlung...

(2) Wenn du ein QFile öffnest wird der Inhalt der Datei dabei nicht in den Speicher geladen, wodurch du einfach nur immer so viele Daten einliest, wie du gerade brauchst...

Mfg androphinx
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Was man nicht alles findet, wenn man das Forum durchsucht: http://qtforum.de/forum/viewtopic.php?t=9130
Antworten