StructLayoutToolkitGui
StructLayoutToolkitGui is a desktop application for inspecting and editing binary files using structure layouts defined by the StructLayoutToolkit ecosystem. It combines a hierarchical binary viewer with editors for structure and enumeration definitions.
Features
- Decode binary files with a selected
StructDef. - Display field offsets, raw bytes, names, types, values, and sizes.
- Inspect nested structures in a hierarchical tree view.
- Edit decoded field values and encode them back to binary data.
- View and edit raw hexadecimal data when no structure is selected.
- Create and edit
StructDefandEnumDefdictionaries. - Re-decode loaded data after changing type definitions.
- Open, save, and save-as both binary and StructLayout files.
- Configure the number of bytes shown per row in raw mode.
Requirements
- Python 3.14 or later
- Tkinter support in the Python installation
Tkinter is included with standard Python installations on Windows and macOS. Some Linux distributions provide it as a separate system package.
Installation
Install the package from PyPI:
python -m pip install sltgui
Running the Application
Start the binary editor with:
python -m sltgui.binary_editor_window
Basic Workflow
- Open a StructLayout JSON file from Type Definition > Open StructLayout.
- Open a binary file from File > Open Binary.
- Double-click a value cell to edit a decoded field.
- Use Re-decode after updating Struct or Enum definitions.
- Save changes with Save Binary or choose a new destination with Save Binary As.
The files may also be opened in the opposite order. A binary opened without a layout is shown in raw mode and is decoded when a valid StructLayout is loaded.
Static offsets and sizes use byte,bit notation. For example, 4,0 represents
four bytes and 0,3 represents three bits.
Using the Window from Python
The GUI classes are also available as a Python API:
import tkinter as tk
from sltgui import BinaryEditorWindow
root = tk.Tk()
root.withdraw()
window = BinaryEditorWindow(root)
window.protocol("WM_DELETE_WINDOW", root.destroy)
root.mainloop()
The package exports BinaryEditorWindow, StructDefDictEditor, and
EnumDefDictEditor.
Related Projects
StructLayoutToolkitGui uses the following StructLayoutToolkit packages:
sltcorefor core structure and size typessltcodecfor StructLayout serialization and binary encoding/decodingsltcalcfor expression evaluation
Links
License
StructLayoutToolkitGui is distributed under the MIT License.
Metadata
Release files for sltgui 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sltgui-0.2.0.tar.gz | 36.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sltgui-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.3 kB
Release files / sltgui-0.2.0.tar.gz
| Download URL | sltgui-0.2.0.tar.gz |
|---|---|
| Size | 36.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e0351e0229fe4f3af25a9baae3da5c539829f9508b3d9e93abbbce8552d2431e
|
|
BLAKE2b-256 checksum How to use checksums |
15573a097aa4260e149c2469e35457a64c4c0f2472efb731292600b3d28caac2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / sltgui-0.2.0-py3-none-any.whl
| Download URL | sltgui-0.2.0-py3-none-any.whl |
|---|---|
| Size | 22.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d65863bd71f9f42257e2955b368372e1fcae049f6066bddbb80de0978b3f8bfb
|
|
BLAKE2b-256 checksum How to use checksums |
0cf6186c9be513947842bde89696fbec3d580942d7e945c34271ccae38b57808
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|