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
Tukaan is the new framework that aims to replace Tkinter

Tukaan is the new, pythonic and colorful (like a keel-billed toucan) framework that aims to replace Tkinter. It has everything (on my computer, not at GitHub) that you need to develop cross-platform

Tukaan 101 Jan 08, 2023
🧮A simple calculator written in python allows you to make simple calculations, write charts, calculate the dates, and exchange currency.

Calculator 🖩 A simple calculator written in python allows you to make simple calculations, write charts, calculate the dates, and exchange currency.

Jan Kupczyk 1 Jan 15, 2022
Linux GUI app to codon optimize a directory with fasta files using taxonomy ids imported as a 1-column txt file (1 taxonomy id for each file)

codon optimize cds paired with taxids singlefastas gui Linux GUI app to codon optimize a directory with fasta files using taxonomy ids imported as a 1

Olga Tsiouri 1 Jan 09, 2022
A really minimalistic operating system made using python's GUI module Tkinter.

BoxOS V1.0.0 About A really minimalistic operating system made using python's GUI module Tkinter. What seperates it from the other operating systems m

Fahim 2 Dec 08, 2022
Tkinter-ATM - Python GUI case made with Tkinter

tkinter-ATM Python GUI case made with Tkinter The task of this case was to creat

2 Jan 13, 2022
Dress up your code with a beautiful graphical user interface !

Dresscode Dress up your code with a beautiful graphical user interface ! This project is part of the Pyrustic Ecosystem. Look powered by the cyberpunk

20 Aug 24, 2022
Win32mica: a simple module to add the Mica effect on legacy python windows.

Win32mica (aka PyMica): A simple module to add the Mica effect on legacy python windows The aim of this project is to apply the Mica effect on python

Martí Climent 40 Dec 13, 2022
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,

BeeWare 3.3k Jan 02, 2023
A Minimalistic Backup GUI for your Windows, Mac or Linux

BlobBackup is a minimalistic backup utility for your Windows, Mac or Linux computer. With an excellent engine, extensive storage support, and an easy

283 Nov 30, 2022
System Tray Icon for PySimpleGUI (the tkinter version). Adds a system tray icon by using pystray and PIL

psgtray Add a System Tray Icon to your tkinter port of PySimpleGUI. Installation via pip Installation is via pip: python -m pip install psgtray or if

PySimpleGUI 38 Dec 30, 2022
build GUIs from python functions, using magic.

magicgui: build GUIs from functions, using magic. 📖 Docs Installation magicgui uses qtpy to support both pyside2 and pyqt5 backends. However, you mus

napari 0 Nov 11, 2022
Make nixos usable for non-technical users through a settings / package management GUI.

Nix-Gui Make nixos usable for non-technical users through a settings / package management GUI. Motives The declarative nature of ni

547 Dec 31, 2022
Create highly interactive web pages purely in Python

A package for building highly interactive user interfaces in pure Python inspired by ReactJS.

701 Jan 03, 2023
AppQuickLauncher is a tool that can quickly launch apps by clicking the app tray icon.

AppQuickLauncher AppQuickLauncher is a tool that can quickly launch apps by clicking the app tray icon. On Windows 7 or Windows 10, we can add a folde

yin kaisheng 2 Sep 11, 2022
Generate multifunctional GUIs from classes

magic-class In magicgui you can make simple GUIs from functions. However, we usually have to create GUIs that are composed of several buttons, and eac

25 Dec 15, 2022
TextTUI is a set of extensions to the Textual and Textual-Inputs libraries

TextTUI is a set of extensions to the Textual and Textual-Inputs libraries. Currently a Work in Progress that is based on the 0.1.14 branch of

3 Feb 10, 2022
Gmail account using brute force attack

Programmed in Python | PySimpleGUI Gmail Hack Python script with PySimpleGUI for hack gmail account using brute force attack If you like it give it

Adrijan 127 Dec 30, 2022
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

Roman 3.3k Jan 01, 2023
Json IDE made with Python tkinter!

JIDE Json IDE made with Python tkinter! Download: https://github.com/LouisTheXIV/JIDE/releases/tag/v0.1 Features In JIDE everything is customisable do

n0 7 May 14, 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