{"id":13799402,"url":"https://github.com/Simsys/qhexedit2","last_synced_at":"2025-05-13T08:31:09.827Z","repository":{"id":30004583,"uuid":"33552180","full_name":"Simsys/qhexedit2","owner":"Simsys","description":"Binary Editor for Qt","archived":false,"fork":false,"pushed_at":"2025-04-08T06:57:38.000Z","size":1928,"stargazers_count":378,"open_issues_count":4,"forks_count":146,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-04-14T01:57:29.134Z","etag":null,"topics":["hexadecimal","pyqt","python","python3","qt","widget"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Simsys.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-04-07T15:39:01.000Z","updated_at":"2025-04-08T06:57:42.000Z","dependencies_parsed_at":"2024-08-04T00:03:57.277Z","dependency_job_id":"138c5aeb-b306-4b56-b2bb-22ae1c0f4faf","html_url":"https://github.com/Simsys/qhexedit2","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simsys%2Fqhexedit2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simsys%2Fqhexedit2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simsys%2Fqhexedit2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simsys%2Fqhexedit2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Simsys","download_url":"https://codeload.github.com/Simsys/qhexedit2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253903704,"owners_count":21981734,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hexadecimal","pyqt","python","python3","qt","widget"],"created_at":"2024-08-04T00:01:02.356Z","updated_at":"2025-05-13T08:31:09.821Z","avatar_url":"https://github.com/Simsys.png","language":"C++","readme":"QHexEdit2\n=========\n\n[![.github/workflows/badge-library.yml](https://github.com/Simsys/qhexedit2/actions/workflows/badge-library.yml/badge.svg)](https://github.com/Simsys/qhexedit2/actions/workflows/badge-library.yml)\n[![.github/workflows/badge-binary.yml](https://github.com/Simsys/qhexedit2/actions/workflows/badge-binary.yml/badge.svg)](https://github.com/Simsys/qhexedit2/actions/workflows/badge-binary.yml)\n[![.github/workflows/badge-designer-plugin.yml](https://github.com/Simsys/qhexedit2/actions/workflows/badge-designer-plugin.yml/badge.svg)](https://github.com/Simsys/qhexedit2/actions/workflows/badge-designer-plugin.yml)\n\n\n![Application QHexEdit2 in Action](http://simsys.github.io/qhexedit.png)\n\n\nQHexEdit 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.\n\nQHexEdit 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().\n\nNormally 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.\n\nYou 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.\n\nQHexEdit 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.\n\nQHexEdit 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.\n\n## Using QHexEdit (C++)\nYou can read the documentation of the project [here](http://simsys.github.io/). You find in the sources a [C++ example](https://github.com/Simsys/qhexedit2/tree/master/example), that shows how to use the QHexedit widget. The binaries for the example for the Windows platform are stored with the respective [release](https://github.com/Simsys/qhexedit2/releases).\n\n## Using QHexEdit (Python)\nTo use QHexEdit with Python install it from PyPi:\n\n```\n$ # for PyQt5\n$ pip install PyQt5 PyQt5-QHexEdit\n$\n$ # for PyQt6\n$ pip install PyQt6 PyQt6-QHexEdit\n```\n\nThe sources and binaries for Windows 64 bit and Linux 64 bit are stored [on PyPi](https://pypi.org/search/?q=QHexEdit). 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](https://pypi.org/project/build/). \n\nThere is also a [python example](https://github.com/Simsys/qhexedit2/tree/master/python/example) available. \n\n## Contributing to QHexEdit\nWe love to receive contributions. You can submit bug reports [here](https://github.com/Simsys/qhexedit2/issues). 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.\n\n## License\n```\nQHexEdit is a Hex Editor Widget for the Qt Framework\nCopyright (C) 2010-2025 Winfried Simon\n\nThis library is free software; you can redistribute it and/or\nmodify it under the terms of the GNU Lesser General Public\nLicense as published by the Free Software Foundation; either\nversion 2.1 of the License, or (at your option) any later version.\n\nThis library is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\nLesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public\nLicense along with this library; if not, see\nhttps://www.gnu.org/licenses/\n```\n","funding_links":[],"categories":["Libraries"],"sub_categories":["New Functionality"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSimsys%2Fqhexedit2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSimsys%2Fqhexedit2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSimsys%2Fqhexedit2/lists"}