A GUI for designing Python GUI's for PySimpleGUI.

Overview

SimpleGUIBuilder

A GUI for designing Python GUI's for PySimpleGUI.

Installation

There is none :) just download the file from a release and run it. Don't download from anywhere else (should it appear somewhere else it's not mine).

Exec made with pyinstaller

About

I don't really like frontend but I really like the idea of giving my backend/terminal programs something more pleasurable to interact with.

That's when I came across PySimpleGUI, a simple solution to quickly give my programs an interactive front. But in checking it out I found I wanted more and had an idea: It would be nice if PySimpleGUI and therefore GUI making was in itself more interactive.

And that's how SimpleGUIBuilder came to be: A GUI for creating/designing GUI's layouts for PySimpleGUI, made with PySimpleGUI.

I hope this will be useful to people :)

How it works

Quick disclaimer: With this being a tool for making GUI layouts for PySimpleGUI, you will need to know the basics of how PySimpleGUI works. But worry not, quick experimentation with the SimpleGUIBuilder will also help you in learning it faster. And as advertised in the name, it should be simple ;) I recommend you start here and then use PySimpleGUI Docs as needed.

Lets get on with the show. There's mainly 2 steps in creating a GUI with PySimpleGUI:

  1. Design the GUI, by creating it's correspondent layout;
  2. Create the window and map your code to the GUI through the event loop.

SimpleGUIBuilder will help you with the 1st step, with designing the GUI's layout for PySimpleGUI.

It's easier to show then to explain here, so I made a quick video where I create this simple GUI. (video got downgraded to gif for now, I might still make a video later if i can)

Example layout used:

[ 
  [sg.Text('This is a very basic PySimpleGUI layout')],
  [sg.Input()],
  [sg.Button('Button'), sg.Button('Exit')]
]

IMPORTANT NOTES:

  • SimpleGUIBuilder will automatically save your work every 3 minutes and when you close the window. It will save to an autosave.txt file in the same folder of the program. When starting, it will also autoload from the autosave file if there is one.

  • If you import an empty layout, [] , it will basically clear the current layout being built. Should be useful instead of manually deleting everything.

  • Don't forget to press Apply Properties to save your property changes.

More info

Hopefully the SimpleGUIBuilder's GUI is intuitive and easy to pick up, but I will also explain it here.

There's 3 huge sections:

  • Left - Element Tree: It shows the layout's structure in a tree form. It's where you can select elements.

  • Middle - Element Action: Where you can choose to add/remove/move an element.

  • Right - Element Properties: It's shows all of the element's properties. Here you can also change a property and click Apply Properties to apply. You can think of properties like the initial arguments of an element, because that's exactly what it is.

On the top you have a bunch of action buttons:

  • About: The about :)

  • Preview: A truly magical button that immediately shows you a preview of how the GUI will look like for the layout you're building.

  • Import: Give it a layout, like the one above, and it will import it.

  • Export: Gives you the layout for the GUI you built.

  • Save: Exports the layout and saves it into a file.

  • Load: Imports the layout from a file.

  • Setup: Creates a file based on this template but with your layout already in it. Should help you quickly get onto the 2nd step mentioned in the previous section ("Create the window and map your code to the GUI").

  • Apply Properties: When you change the properties of an element you click here, it will apply and save then. You can then immediately see the changes on the GUI with the "Preview" button (depending on the property you change actually doing a visible change ofc).

Support

If you find this useful consider supporting and buying me coffee :) https://www.buymeacoffee.com/MMartins

And this wouldn't be possible without PySimpleGUI, so they also really deserve it ;) https://www.buymeacoffee.com/PySimpleGUI

You might also like...
psgresizer - a PySimpleGUI application that will resize your images and BASE64 encode them.
psgresizer - a PySimpleGUI application that will resize your images and BASE64 encode them.

psgresizer A PySimpleGUI Application Resize your images quickly and easily with this GUI application. Resizes and encodes to Base64 so that the result

PyQt5 Sample GUI Program - Python PyQt5 Sample GUI application
PyQt5 Sample GUI Program - Python PyQt5 Sample GUI application

Python PyQt5 Sample GUI application Program work like this Designed GUI using De

The GUI application by Python3.8. Using QT Design draw UI and generator UI XML file provides to PySide2 build GUI components
The GUI application by Python3.8. Using QT Design draw UI and generator UI XML file provides to PySide2 build GUI components

The GUI application by Python3.8. Using QT Design draw UI and generator UI XML file provides to PySide2 build GUI components. Total adopt OOD design class, service, and abstract class. OOP implemented this project.

Learn to build a Python Desktop GUI app using pywebview, Python, JavaScript, HTML, & CSS.
Learn to build a Python Desktop GUI app using pywebview, Python, JavaScript, HTML, & CSS.

Python Desktop App Learn how to make a desktop GUI application using Python, JavaScript, HTML, & CSS all thanks to pywebview. pywebview is essentially

A little Python library for making simple Electron-like HTML/JS GUI apps
A little Python library for making simple Electron-like HTML/JS GUI apps

Eel Eel is a little Python library for making simple Electron-like offline HTML/JS GUI apps, with full access to Python capabilities and libraries. Ee

Turn (almost) any Python command line program into a full GUI application with one line
Turn (almost) any Python command line program into a full GUI application with one line

Gooey Turn (almost) any Python 2 or 3 Console Program into a GUI application with one line Support this project Table of Contents Gooey Table of conte

Build GUI for your Python program with JavaScript, HTML, and CSS
Build GUI for your Python program with JavaScript, HTML, and CSS

https://pywebview.flowrl.com pywebview is a lightweight cross-platform wrapper around a webview component that allows to display HTML content in its o

A Python native, OS native GUI toolkit.
A Python native, OS native GUI toolkit.

Toga A Python native, OS native GUI toolkit. Prerequisites Minimum requirements Toga requires Python 3. Python 2 is not supported. If you're on macOS,

Edifice: a declarative GUI library for Python
Edifice: a declarative GUI library for Python

Edifice is a Python library for building reactive UI, inspired by modern Javascript libraries such as React.

Comments
  • Malformed nodee or string?

    Malformed nodee or string?

    After using the program for a bit it suddenly crashed, showing me this error: image

    Reinstalling the program wouldn't work. As for recreating the error, I have no idea.

    opened by Nasko-5 2
  • How to add row?

    How to add row?

    I want to try you builder I can't find any way to add row to the layout. If I try to add an element directly to the root I got an error and and then the window closes.

    opened by vinniec 2
  • Program crash whenever any node is clicked on

    Program crash whenever any node is clicked on

    I downloaded your code and run the simple_gui_builder.py file. The interface comes up and I can preview fine. If I try to click on any entity like a text field, I get an error "Error: module 'PySimpleGUI' has no attribute 'pin'. General error. This error exists so the program doesn't just crash. An error happened that I didn't catch properly, so no good message to help in what's wrong except the prob bliberish above :(" This happens on the sample layout as well as if I try to create a new layout [] though import. I like the idea of your project!

    opened by Dr-Scott-James 2
  • Program crashes if a main.py exists in the same folder with less than 102 lines

    Program crashes if a main.py exists in the same folder with less than 102 lines

    Error: list index out of range

    Reproduction steps: Download latest exe Make a non blank "main.py" file in the same folder (simply adding a space to the file will do) Try and launch the program

    This will also crash the program if a non-blank main.py file is created while its running and anything is clicked on

    However this only applies when the "main.py" file is less than 102 lines long.

    Fix: Building the exe with python 3.9.1 fixes this

    opened by Cheeseypop 2
Releases(1.0.2)
Owner
Miguel Martins
Miguel Martins
Rich.tui is a TUI (Text User Interface) framework for Python using Rich as a renderer.

rich.tui Rich.tui is a TUI (Text User Interface) framework for Python using Rich as a renderer. The end goal is to be able to rapidly create rich term

Will McGugan 17.1k Jan 04, 2023
LittlePythonGUIGuide - This is a short GUI Guide with python

This is a short GUI Guide with python, learning how to use the simple and easy moduel built into python, named tkinter.

1cy50ng3b0b 1 Nov 21, 2021
A GUI based CRUD database management system built using mysql and python

A GUI based CRUD database management system built using mysql and python

Aquila 2 Feb 13, 2022
Basic browser based on PyQt5

goneDev-browser "basic browser based on PyQt5" This application is primarily built on macOS with more adaptibility for MacOS than Windows. v1.0 will s

Harsh ADV) 1 Jan 19, 2022
Edifice: a declarative GUI library for Python

Edifice is a Python library for building reactive UI, inspired by modern Javascript libraries such as React.

David Ding 193 Dec 11, 2022
Simple GUI python app to show a stocks graph performance. Made with Matplotlib and Tiingo.

stock-graph-python Simple GUI python app to show a stocks graph performance. Made with Matplotlib and Tiingo. Tiingo API Key You will need to add your

Toby 12 May 14, 2022
GUI for Volatility forensics tool written in PyQT5

Volatility GUI This is a GUI for Volatility forensics tool written in PyQT5 Prerequisites: 1- Installed version of Volatility. 2- Install PyQT5. sudo

Hamza Megahed 52 Jun 18, 2022
psgresizer - a PySimpleGUI application that will resize your images and BASE64 encode them.

psgresizer A PySimpleGUI Application Resize your images quickly and easily with this GUI application. Resizes and encodes to Base64 so that the result

PySimpleGUI 10 Dec 25, 2022
Tkinter calculetor - Tkinter calculetor with python

Tkinter_calculetor required to run py file pip install tkinter

Yasir Arafat 0 Feb 07, 2022
Function-Plotter - GUI Python program that plots functions that are entered by the user

FunctionPlotter GUI Python program that plots functions that are entered by the user. The program takes minimum and maximum value for x and plot it as

Mohamed Magdy 2 Jan 20, 2022
A simple Python Module for sending cross-platform desktop notifications on Windows, macOS and Linux

notify.py Cross platform desktop notifications for Python scripts and applications. Docs You can read the docs on this Git's Wiki, or here Supported P

Mustafa 178 Dec 26, 2022
Uma interfáce de usuário relativamente simples em pyqt5 + escolha de dispositivos

Interface para Scrcpy Uma interfáce de usuário relativamente simples em pyqt5 para sistemas UNIX Requerimentos: Python3 PyQt5 adb scrcpy Você pode ins

hayukimori 10 Dec 16, 2022
A GUI frontend for the Kamyroll-API using Python and PySide6

Kamyroll-GUI A GUI frontend for the Kamyroll-API using Python and PySide6 Usage When starting the application you will be presented with a list and so

Simon Sawicki 15 Oct 09, 2022
Advanced Zola Cabs integrated with tkinter Graphical User Interface (GUI) made for ZOHO Corp .

ZolaCabs Advanced Zola Cabs integrated with tkinter Graphical User Interface (GUI) made for ZOHO Corp. Logs username : zoho password : zoho [ Deve

Mastermind 9 Nov 18, 2021
A library for building modern declarative desktop applications in WX.

re-wx is a library for building modern declarative desktop applications. It's built as a management layer on top of WXPython, which means you get all the goodness of a mature, native, cross-platform

Chris 115 Dec 24, 2022
A calculator made using Python and Tkinter

Abacus Abacus is a calculator used to compute expressions with the operators of Addition, Subtraction, Multiplication and Division. It is named after

0 Jun 24, 2022
A little Python library for making simple Electron-like HTML/JS GUI apps

Eel Eel is a little Python library for making simple Electron-like offline HTML/JS GUI apps, with full access to Python capabilities and libraries. Ee

Chris Knott 5.4k Jan 07, 2023
Python Web Version 3.0 Using PyQty module

Python-Web-Version-3.0 Python Web Version 3.0 Using PyQty module you have to install pyinstaller module then install PyQt5 module and install PyQtwebE

JehanKandy 9 Jul 13, 2022
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies

(This library is available under a free and permissive license however, if you Enjoy Dear PyGui please consider becoming a Sponsor) Dear PyGui is a si

Jonathan Hoffstadt 9.4k Jan 07, 2023