Seite 1 von 1

Hex Viewer

Verfasst: 26. September 2010 10:38
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!

Verfasst: 26. September 2010 19:25
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.

Verfasst: 27. September 2010 19:09
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

Verfasst: 27. September 2010 19:35
von upsala
Was man nicht alles findet, wenn man das Forum durchsucht: http://qtforum.de/forum/viewtopic.php?t=9130