Mirror of PySimpleGUI, since the creator took down the original off of GitHub
Go to file
MikeTheWatchGuy 258939af56 readme checkin
Initial readme checkin
2018-07-11 15:25:04 -04:00
PySimpleGUI.py Initial checkin 2018-07-11 15:19:24 -04:00
readme.md readme checkin 2018-07-11 15:25:04 -04:00

readme.md

PySimpleGUI

... is a simple GUI, but also powerfully customizable. It's simple from the programmer's view point. The idea is to make adding a GUI to a Python program be a simple and trivial task.

I was frustrated by having to deal with the dos prompt when I had a powerful Windows machine right in front of me. Why is it SO difficult to do even the simplest of input/output to a window in Python??

Python itself doesn't have a SIMPLE solution... nor did the many GUI packages I tried. Most tried to do TOO MUCH, making it impossible for users to get started quickly. Others were just plain broken, requiring multiple files or other packages.

The PySimpleGUI solution is focused on the developer. How can the desired result be achieved in as little and as simple code as possible? This was the mantra used to create PySimpleGUI.

You can add a GUI to your command line with a single line of code. With 3 or 4 lines of code you can add a fully custom designed GUI.

The customization power comes from the form/dialog box builder that enables users to experience all of the normal GUI widgets without having to write a lot of code.

Features include: Text Single Line Input Buttons including these types: File Browse Folder Browse Non-closing return Close form Checkboxes Radio Buttons Icons Multi-line Text Input Scrollable Output
Progress Bar Async/Non-Blocking Windows Persistent Windows Redirect Python Output/Errors to scrolling Window 'Higher level' APIs (e.g. MessageBox, YesNobox, ...)

Getting Started with PySimpleGUI

To use import PySimpleGUI as SG

For examples download

DisplayHash.py - Shows you how to use the most basic functionality
ColorDemo.py - COLORS are a big part of the fun of a GUI, right?

HowDoI.py - More advanced 'Chat-style' windows that don't close with button clicks

Prerequisites

Python 3 tkinter

Should run on all Python platforms that have tkinter running on them. Has been thoroughly tested on Windows. While not tested elsewhere, should work on Linux, Mac, Pi, etc.

Installing

pip install PySimpleGUI

or Simply download the file - PySimpleGUI.py and import it into your code

Running the tests

Deployment

PySimpleGUI can be broken down into 2 types of API's:

  • High Level single call functions
  • Custom form functions

High Level API Calls

The classic "input a value, print result" example. Often command line programs simply take some value as input on the command line, do something with it and then display the results. Moving from the command line to a GUI is very simple. This code prompts user to input a line of text and then displays that text in a messages box:

import PySimpleGUI_local as SG  
  
rc = SG.GetTextBox('Title', 'Please input something')  
SG.MsgBox('Results', 'The value returned from GetTextBox', rc)

GetTextBox

MsgBox

Custom Form API Calls Here is a complete form - design, display, return information straight into caller's variables

# -------  Form design ------- #
layout = [[Text('The SHA-1 Hash for the file')],
          [InputText(), FileBrowse()],
          [Submit(), Cancel()]]
# -------  Form show  ------- #
(button, (source_filename,)) = FlexForm('Display A Hash in GooeyGUI', AutoSizeText=True).LayoutAndShow(layout)

Important initial concepts Return information from FlexForm, SG's primary form builder interface, is in this format:

(button, (value1, value2, ...))

Don't forget all those ()'s of your values won't be coreectly assigned.

If you have a SINGLE value being returned, it is written this way:

(button, (value1,))

Forgetting the comma will mess you up but good

Built With

Contributing

A MikeTheWatchGuy production... entirely responsible for this code

Versioning

1.0.9 - July 10, 2018 - Initial Release

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

  • Jorj McKie was the motivator behind the entire project. His wxsimpleGUI concepts sparked PySimpleGUI into existence