# pygubu-designer **Repository Path**: putiji/pygubu-designer ## Basic Information - **Project Name**: pygubu-designer - **Description**: No description available - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-06-19 - **Last Updated**: 2024-06-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [Leer en EspaƱol](LEEME.md) Welcome to Pygubu! ============================================ `Pygubu` is a [RAD tool](https://en.wikipedia.org/wiki/Rapid_application_development) to enable _quick_ and _easy development of user interfaces_ for the Python's `tkinter` module. The user interfaces designed are saved as [XML](https://en.wikipedia.org/wiki/XML) files, and, by using the _pygubu builder_, these can be loaded by applications dynamically as needed. Pygubu is inspired by [Glade](https://gitlab.gnome.org/GNOME/glade). Installation ============ The latest version of pygubu requires Python >= 3.8 You can install pygubu-designer using: ### pip ``` pip install pygubu-designer ``` ### Arch Linux ([AUR](https://aur.archlinux.org/packages/pygubu-designer)) ``` yay pygubu-designer ``` Screenshot ========== pygubu-desinger.png Usage ===== Type on the terminal one of the following commands depending on your system. ### Unix-like systems ``` pygubu-designer ``` ### Windows ``` C:\Python3\Scripts\pygubu-designer.exe ``` Where `C:\Python3` is the path to **your** Python installation directory. Now, you can start creating your tkinter application using the widgets that you find in the top panel called `Widget Palette`. After you finished creating your _UI definition_, save it to a `.ui` file by going to the top menu `File > Save`. The following is a UI definition example called [helloworld.ui](examples/helloworld/helloworld.ui) created using pygubu: ```xml 200 both Hello World App 200 200 20 200 true top center Helvetica 26 #0000b8 Hello World ! top ``` Then, you should create your _application script_ as shown below ([helloworld.py](examples/helloworld/helloworld.py)): ```python # helloworld.py import pathlib import tkinter as tk import tkinter.ttk as ttk import pygubu PROJECT_PATH = pathlib.Path(__file__).parent PROJECT_UI = PROJECT_PATH / "helloworld.ui" class HelloworldApp: def __init__(self, master=None): # 1: Create a builder and setup resources path (if you have images) self.builder = builder = pygubu.Builder() builder.add_resource_path(PROJECT_PATH) # 2: Load an ui file builder.add_from_file(PROJECT_UI) # 3: Create the mainwindow self.mainwindow = builder.get_object('mainwindow', master) # 4: Connect callbacks builder.connect_callbacks(self) def run(self): self.mainwindow.mainloop() if __name__ == '__main__': app = HelloworldApp() app.run() ``` Note that instead of `helloworld.ui` in the following line: ```python PROJECT_UI = PROJECT_PATH / "helloworld.ui" ``` You should insert the _filename_ (or path) of your just saved UI definition. Note also that instead of `'mainwindow'` in the following line: ```python self.mainwindow = builder.get_object('mainwindow', master) ``` You should have the name of your _main widget_ (the parent of all widgets), otherwise you will get an error similar to the following: Exception: Widget not defined. See [this](https://github.com/alejandroautalan/pygubu/issues/40) issue for more information. Documentation ============= Visit the [wiki](https://github.com/alejandroautalan/pygubu-designer/wiki) for more documentation. The following are some good tkinter (and tk) references: - [TkDocs](http://www.tkdocs.com) - [Graphical User Interfaces with Tk](https://docs.python.org/3/library/tk.html) - [Tkinter 8.5 reference: a GUI for Python](https://tkdocs.com/shipman) - [An Introduction to Tkinter](http://effbot.org/tkinterbook) [(archive)](http://web.archive.org/web/20200504141939/http://www.effbot.org/tkinterbook) - [Tcl/Tk 8.5 Manual](http://www.tcl.tk/man/tcl8.5/) You can also see the [examples](examples) directory or watch [this introductory video tutorial](http://youtu.be/wuzV9P8geDg). History ======= See the list of changes [here](HISTORY.md).