All Projects → Dax89 → Qhexview

Dax89 / Qhexview

Licence: mit
A versatile Hexadecimal widget for Qt5

Labels

Projects that are alternatives of or similar to Qhexview

Feedback
Feedback & wiki for Snipaste https://snipaste.com
Stars: ✭ 1,863 (+1008.93%)
Mutual labels:  qt, qt5
Mini Cmake Qt
A minimal CMake template for Qt 5 & 6 projects
Stars: ✭ 156 (-7.14%)
Mutual labels:  qt, qt5
Notepanda
📃 A simple cross-platform notepad. Based on Qt and C++.
Stars: ✭ 134 (-20.24%)
Mutual labels:  qt, qt5
Pref
Portable Reverse Engineering Framework
Stars: ✭ 127 (-24.4%)
Mutual labels:  qt, qt5
Gtkplatform
Run Qt applications using gtk+ as a windowing system.
Stars: ✭ 146 (-13.1%)
Mutual labels:  qt, qt5
Versatile
A simple 3D model editor based on simple quads and a sprite set.
Stars: ✭ 132 (-21.43%)
Mutual labels:  qt, qt5
Shell
🐚 QtQuick and Wayland shell for convergence
Stars: ✭ 168 (+0%)
Mutual labels:  qt, qt5
Qhttpengine
HTTP server for Qt applications
Stars: ✭ 112 (-33.33%)
Mutual labels:  qt, qt5
Moneyguru
Future-aware personal finance application
Stars: ✭ 145 (-13.69%)
Mutual labels:  qt, qt5
Qdarkstylesheet
A dark style sheet for QtWidgets application
Stars: ✭ 1,952 (+1061.9%)
Mutual labels:  qt, qt5
Embedded Ide
IDE for C embedded development centered on bare-metal ARM systems
Stars: ✭ 127 (-24.4%)
Mutual labels:  qt, qt5
Sqlitestudio
A free, open source, multi-platform SQLite database manager.
Stars: ✭ 2,337 (+1291.07%)
Mutual labels:  qt, qt5
Qgnomeplatform
QPlatformTheme for a better Qt application inclusion in GNOME
Stars: ✭ 126 (-25%)
Mutual labels:  qt, qt5
Kshare
The free and open source and cross platform screen sharing software.
Stars: ✭ 151 (-10.12%)
Mutual labels:  qt, qt5
Autoannotationtool
A label tool aim to reduce semantic segmentation label time, rectangle and polygon annotation is supported
Stars: ✭ 113 (-32.74%)
Mutual labels:  qt, qt5
Simple Mail
An SMTP library written in C++ for Qt. Allows applications to send emails (MIME with text, html, attachments, inline files, etc.) via SMTP. Supports SSL and SMTP authentication.
Stars: ✭ 134 (-20.24%)
Mutual labels:  qt, qt5
Apk Icon Editor
APK editor to easily change APK icons, name and version.
Stars: ✭ 104 (-38.1%)
Mutual labels:  qt, qt5
Telegram Qt
Qt-based library for Telegram network
Stars: ✭ 105 (-37.5%)
Mutual labels:  qt, qt5
Qcodeeditor
Qt Code Editor widget.
Stars: ✭ 136 (-19.05%)
Mutual labels:  qt, qt5
Openauto
AndroidAuto headunit emulator
Stars: ✭ 1,926 (+1046.43%)
Mutual labels:  qt, qt5

QHexView

QHexView is a hexadecimal widget for Qt5


Features

  • Customizable data backend (see more below).
  • Document/View based.
  • Unlimited Undo/Redo.
  • Fully Customizable.
  • Fast rendering.
  • Easy to Use.

Buffer Backends

These are the available buffer backends:

  • QMemoryBuffer: A simple, flat memory array.
  • QMemoryRefBuffer: QHexView just display the referenced data, editing is disabled.

It's also possible to create new data backends from scratch.

Usage

The data is managed by QHexView through QHexDocument class.
You can load a generic QIODevice using the method fromDevice() of QHexDocument class with various buffer backends.
Helper methods are provided in order to load a QFile a In-Memory buffer in QHexView:

// Load data from In-Memory Buffer...
QHexDocument* document = QHexDocument::fromMemory<QMemoryBuffer>(bytearray);
// ...from a generic I/O device...
QHexDocument* document = QHexDocument::fromDevice<QMemoryBuffer>(iodevice);
/* ...or from File */
QHexDocument* document = QHexDocument::fromFile<QMemoryBuffer>("data.bin");

QHexView* hexview = new QHexView();
hexview->setDocument(document);                  // Associate QHexEditData with this QHexEdit

// Document editing
QByteArray data = document->read(24, 78);        // Read 78 bytes starting to offset 24
document->insert(4, "Hello QHexEdit");           // Insert a string to offset 4 
document->remove(6, 10);                         // Delete bytes from offset 6 to offset 10 
document->replace(30, "New Data");               // Replace bytes from offset 30 with the string "New Data"

// Metatadata management
QHexMetadata* hexmetadata = document->metadata();

hexmetadata->background(6, 0, 10, Qt::Red);      // Highlight background to line 6, from 0 to 10 
hexmetadata->foreground(8, 0, 15, Qt::darkBLue); // Highlight foreground to line 8, from 0 to 15
hexmetadata->comment(16, "I'm a comment!");      // Add a comment to line 16
hexmetadata->clear();                            // Reset styling

License

QHexEdit is released under MIT license

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].