menuet
Declarative menu builder for DCC applications
Documentation • PyPI • GitLab • GitHub • Changelog • Contributing
| Blender | 3ds Max |
|---|---|
|
|
| Maya | macOS Native |
|
|
| macOS | Windows |
|
|
| Unreal | |
|
Features¶
- Load menu from a TOML or JSON configuration, from a dict, from entry points, or build it programmatically.
- Supports, Blender, 3ds Max, Maya, MotionBuilder, Unreal and any PySide6 application.
- Declare one or more menus in a dedicated
.tomlfile. - Compose menu from multiple
.tomlfiles. - Declare a menu in a
pyproject.toml.
Installation¶
Usage¶
Create a menu configuration in TOML format.
# menu.toml
[[action]]
id = "print-hello"
label = "Print Hello"
cb = "print('Hello')"
group = "Separator"
[[action]]
id = "open-gui"
label = "Open GUI"
cb = "ep:myapp.gui:open_gui"
menu = ["Foo", "Bar"]
Load the above configuration into a Model and pass
that model to a Menu Builder to create a menu.
from pathlib import Path
from menuet import Model, loads
from menuet.builders.text import Render, TextMenuBuilder
model = Model()
loads(Path("menu.toml").read_text(), model)
builder = TextMenuBuilder(model, root_menu="Demo", render=Render.UTF8)
print(builder.build())
For more information and examples, visit the documentation at tahv.gitlab.io/menuet.
Contributing¶
Contributions of any kind are welcome. Please open an issue, or read the contribution guidelines and open a merge request.