Skip to main content

Python bindings for the QHexEdit Widget

Project description

QHexEdit2

.github/workflows/badge-library.yml .github/workflows/badge-binary.yml .github/workflows/badge-designer-plugin.yml

Application QHexEdit2 in Action

QHexEdit is a hex editor widget written in C++ for the Qt (Qt5, Qt6) framework. It is a simple editor for binary data, just like QPlainTextEdit is for text data. There are sip configuration files included, so it is easy to create bindings for PyQt and you can use this widget also in python.

QHexEdit takes the data of a QByteArray (setData()) and shows it. You can use the mouse or the keyboard to navigate inside the widget. If you hit the keys (0..9, a..f) you will change the data. Changed data is highlighted and can be accessed via data().

Normally QHexEdit works in the overwrite mode. You can set overwrite mode(false) and insert data. In this case the size of data() increases. It is also possible to delete bytes (del or backspace), here the size of data decreases.

You can select data with keyboard hits or mouse movements. The copy-key will copy the selected data into the clipboard. The cut-key copies also but deletes it afterwards. In overwrite mode, the paste function overwrites the content of the (does not change the length) data. In insert mode, clipboard data will be inserted. The clipboard content is expected in ASCII Hex notation. Unknown characters will be ignored.

QHexEdit comes with undo/redo functionality. All changes can be undone, by pressing the undo-key (usually ctr-z). They can also be redone afterwards. The undo/redo framework is cleared, when setData() sets up a new content for the editor. You can search data inside the content with indexOf() and lastIndexOf(). The replace() function is to change located subdata. This 'replaced' data can also be undone by the undo/redo framework.

QHexEdit is based on QIODevice, that's why QHexEdit can handle big amounts of data. The size of edited data can be more then two gigabytes without any restrictions.

Using QHexEdit (C++)

You can read the documentation of the project here. You find in the sources a C++ example, that shows how to use the QHexedit widget. The binaries for the example for the Windows platform are stored with the respective release.

Using QHexEdit (Python)

To use QHexEdit with Python install it from PyPi:

$ # for PyQt5
$ pip install PyQt5 PyQt5-QHexEdit
$
$ # for PyQt6
$ pip install PyQt5 PyQt5-QHexEdit

The sources and binaries for Windows 64 bit and Linux 64 bit are stored on PyPi. For all other targets, the widget must be compiled locally. For this, the corresponding Qt version including the developer packages must be installed. It makes sense to compile the C++ project first. If this is possible with qmake, it is also possible to compile the PyQt bindings. This requires python build.

There is also a python example available.

Contributing to QHexEdit

We love to receive contributions. You can submit bug reports here. If you are a developer, you can pick up a work item and start to realize super exciting features or fix bugs. We also like to receive enhancement proposals or translation support.

License

Copyright (C) 2015-2016 Winfried Simon

This software may be used under the terms of the GNU Lesser General
Public License version 2.1 as published by the Free Software Foundation
and appearing in the file license.txt included in the packaging of this file.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyqt6_qhexedit-0.8.11.tar.gz (30.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyqt6_qhexedit-0.8.11-cp312-cp312-manylinux_2_28_x86_64.whl (58.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pyqt6_qhexedit-0.8.11-cp311-none-win_amd64.whl (52.1 kB view details)

Uploaded CPython 3.11Windows x86-64

File details

Details for the file pyqt6_qhexedit-0.8.11.tar.gz.

File metadata

  • Download URL: pyqt6_qhexedit-0.8.11.tar.gz
  • Upload date:
  • Size: 30.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pyqt6_qhexedit-0.8.11.tar.gz
Algorithm Hash digest
SHA256 479bd22aaf0a06a3c327a8473986c2a9a3c8e886c46df96360095ac0d8342ef3
MD5 2a16f73b8e83a390218bb35b33dc77d4
BLAKE2b-256 d0f0a9a5cef18e6b202cbc0732b5306878ae7ca118a069abff623b15bd3968a9

See more details on using hashes here.

File details

Details for the file pyqt6_qhexedit-0.8.11-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyqt6_qhexedit-0.8.11-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2dcd69d74598bee55316c7b5b5e2a4045185f099b1e1cdd8c595ce7106b204a0
MD5 b8cdaf8170e25f6ee1fb72e11f44597f
BLAKE2b-256 2f363fdbf330792dc8f00799d326a3a4dc510d0b0d19ba4f84a81d037fe19b4c

See more details on using hashes here.

File details

Details for the file pyqt6_qhexedit-0.8.11-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for pyqt6_qhexedit-0.8.11-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 70874569dc7fa8091528bce2c8e741e89f9ef0a737a00861c9f32993cfecf520
MD5 e5e970d30a4d26ee8bf6ad638880ddbf
BLAKE2b-256 618b1e6f33864dfb4253afcbdff2c98050aa7043f23b3bcbb95173a8c21fe617

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page