PySimpleGUI/DemoPrograms
2021-07-24 10:53:20 -04:00
..
PyDroid3
Browser_START_HERE_Demo_Programs_Browser.py Removed sizegrip so that it can run on older versions of PySimpleGUI. Also removed the change where expand_x, the newly added option on several elements, is removed. 2021-07-24 10:53:20 -04:00
ButtonClick.wav
ButtonClick1.wav
db.sqlite3
default_icon.ico
Demo_All_Elements.py
Demo_Animated_GIFs.py
Demo_Animated_GIFs_Using_PIL.py
Demo_Bar_Chart.py
Demo_Base64_Image_Encoder.py
Demo_Base64_Single_Image_Encoder.py
Demo_Borderless_Window.py
Demo_Button_Click.py
Demo_Button_Events_From_Browse.py
Demo_Button_Func_Calls.py
Demo_Button_States.py
Demo_Button_Toggle.py
Demo_Button_Toggle2.py Fixed key error, fixed problem with events from elements with no metadata 2021-04-21 10:33:31 -04:00
Demo_Buttons_Base64_Shaded.py
Demo_Buttons_Base64_Simple.py
Demo_Buttons_Base64_User_Settings.py
Demo_Buttons_Mac.py
Demo_Buttons_Nice_Graphics.py
Demo_Buttons_Realtime.py Removed old Pi Robotics demo. Added Demo_Buttons_Realtime 2021-04-06 17:45:41 -04:00
Demo_Calendar.py
Demo_Canvas.py
Demo_Chat.py
Demo_Chat_With_History.py
Demo_Chatterbot.py
Demo_Chatterbot_With_TTS.py
Demo_Close_Attempted_Event.py
Demo_Color_Chooser_Custom.py
Demo_Color_Names.py Removed print accidently left in debugging tags. Cleaned up the color demo. 2021-06-10 13:29:40 -04:00
Demo_Color_Names_Smaller_List.py
Demo_Color_Swatches.py
Demo_Column_And_Frames.py
Demo_Column_Collapsible_Sections.py Reworked the demo 2021-04-07 20:38:59 -04:00
Demo_Column_Elem_Swap_Entire_Window.py
Demo_Columns.py
Demo_Combo_Filechooser_With_History_And_Clear.py Sort the list of entries 2021-07-03 14:29:14 -04:00
Demo_Compact_Layouts_Element_Renaming.py
Demo_Compare_Files.py
Demo_Control_Panel_Button_Grid.py
Demo_Conways_Game_of_Life.py
Demo_Crossword_Puzzle.py
Demo_Cursors.py Renamed the cursor demo. Included example of turning off the cursor entirely at the element and the window level. 2021-07-02 15:04:30 -04:00
Demo_Dashboard.py
Demo_Date_Chooser.py
Demo_Debugger_Built_Into_PSG.py
Demo_Debugger_Button.py
Demo_Debugger_ImWatchingYou.py
Demo_Demo_Programs_Browser.py
Demo_Design_Pattern_Multiple_Windows.py
Demo_Design_Pattern_Multiple_Windows1.py
Demo_Design_Pattern_Multiple_Windows2.py
Demo_Design_Pattern_Multiple_Windows3.py
Demo_Design_Pattern_Multiple_Windows_Both_Visible.py
Demo_Design_Pattern_Multiple_Windows_OLD METHOD.py
Demo_Design_Pattern_Persistent_Window.py
Demo_Design_Pattern_Save_Theme.py
Demo_Design_Patterns.py
Demo_Desktop_Floating_Toolbar.py
Demo_Desktop_Widget_Count_To_A_Goal.py Changed gauge update 2021-05-31 19:48:52 -04:00
Demo_Desktop_Widget_CPU_Dashboard.py
Demo_Desktop_Widget_CPU_Gauge.py Added predefined right click menu for exiting and self-editing. Removed older "RAM_Used" demo. 2021-05-18 09:54:12 -04:00
Demo_Desktop_Widget_CPU_Graph.py
Demo_Desktop_Widget_CPU_Grid_Of_Gauges.py
Demo_Desktop_Widget_CPU_Square.py Added predefined right click menu for exiting and self-editing. Removed older "RAM_Used" demo. 2021-05-18 09:54:12 -04:00
Demo_Desktop_Widget_CPU_Top_Processes.py
Demo_Desktop_Widget_CPU_Utilization_Simple.py
Demo_Desktop_Widget_Date.py New Desktop Widget Demo - Date Display 2021-05-20 12:54:14 -04:00
Demo_Desktop_Widget_Days_Counter.py Enable changing the font. Better error checking and settings file delete option. 2021-05-20 12:54:53 -04:00
Demo_Desktop_Widget_Digital_Picture_Frame.py Option to show a single image 2021-06-23 18:03:23 -04:00
Demo_Desktop_Widget_Drive_Usage.py
Demo_Desktop_Widget_Email_Notification.py
Demo_Desktop_Widget_FedEx_Package_Tracking.py Invert colors of the "Refresh Button" while refresh is happening 2021-06-05 10:49:28 -04:00
Demo_Desktop_Widget_Postit.py Minor formatting 2021-05-24 15:01:29 -04:00
Demo_Desktop_Widget_psutil_Dashboard.py
Demo_Desktop_Widget_RAM_Gauge.py Added predefined right click menu for exiting and self-editing. Removed older "RAM_Used" demo. 2021-05-18 09:54:12 -04:00
Demo_Desktop_Widget_RAM_Square.py Added predefined right click menu for exiting and self-editing. Removed older "RAM_Used" demo. 2021-05-18 09:54:12 -04:00
Demo_Desktop_Widget_Template.py
Demo_Desktop_Widget_Timer.py A little cleanup 2021-05-02 10:46:31 -04:00
Demo_Desktop_Widget_Weather.py
Demo_Disable_Elements.py
Demo_Dispatchers.py New Demo - Dispatchers - from the Udemy course 2021-05-02 10:46:19 -04:00
Demo_DOC_Viewer_PIL.py
Demo_DuplicateFileFinder.py
Demo_Edit_Me_Option.py Fix window's title 2021-04-04 15:22:36 -04:00
Demo_Email_Send.py
Demo_Emojis.py
Demo_Event_Binding.py
Demo_Event_Callback_Simulation.py
Demo_EXE_Maker.py
Demo_Execute_Py.py New Demo - Execute Py - shows link between global setting of interpreter and the exec API call execute_py_file 2021-05-09 15:52:04 -04:00
Demo_Fill_Form.py
Demo_Floating_Toolbar.py
Demo_Font_Previewer.py
Demo_Font_Sizer.py
Demo_Font_String.py
Demo_Game_Frontend_Battleship.py
Demo_Game_Frontend_Battleship_No_List_Comprehensions.py
Demo_Game_Frontend_Battleship_Single_List_Comprehension.py
Demo_GitHub_File_Copier.py
Demo_GoodColors.py
Demo_GoodColors_2.py
Demo_Google_TTS.py
Demo_Graph_Ball_Game.py
Demo_Graph_Drag_Rectangle.py
Demo_Graph_Drawing.py
Demo_Graph_Drawing_And_Dragging_Figures.py
Demo_Graph_Drawing_And_Dragging_Figures_2_Windows.py
Demo_Graph_Elem_Image_Album.py
Demo_Graph_Element.py
Demo_Graph_Element_Sine_Wave.py
Demo_Graph_FourierTransform.py
Demo_Graph_Noise.py
Demo_Graph_pymunk_2D_Graphics.py Had timeout=1 which is a terrible idea (it's old code) 2021-05-29 16:31:16 -04:00
Demo_Graph_pymunk_Desktop_Balls.py
Demo_Hello_World.py
Demo_Hotkey.py
Demo_HowDoI.py
Demo_Image_Elem_Image_Viewer_PIL_Based.py
Demo_Image_Elem_Splash_Screen.py
Demo_Image_Viewer_Thumbnails.py
Demo_Img_Viewer.py
Demo_Input_Auto_Complete.py Much more up to date Demo of Autocomplete. Based on program by @bonklers 2021-03-30 17:55:20 -04:00
Demo_Input_Validation.py
Demo_Invisible_Elements.py
Demo_Invisible_Elements_Pinning.py
Demo_IP_Address_Entry.py
Demo_Justification_Columns.py Using Columns to Justify Elements 2021-07-20 15:17:09 -04:00
Demo_Keyboard.py
Demo_Keyboard_ENTER_Presses_Button.py
Demo_Keyboard_Realtime.py
Demo_Keypad.py
Demo_Layout_Extend.py
Demo_Layout_Generation.py
Demo_Layout_Reuse_Effect.py
Demo_Layout_Vertical.py
Demo_Layout_Vertical_Centered.py
Demo_LED_Clock_Weather.py
Demo_LED_Indicators.py
Demo_LED_Indicators_Text_Based.py
Demo_Listbox_Search_Filter.py
Demo_Long_Operations.py Replaced the multithreaded wrapper demo with one that calls Window.perform_long_operation 2021-07-23 09:51:38 -04:00
Demo_Look_And_Feel_Theme_Browser.py
Demo_Look_And_Feel_Theme_Dump.py
Demo_Machine_Learning.py
Demo_Main_Control_Test_Panel.py
Demo_Matplotlib.py
Demo_Matplotlib_Animated.py
Demo_Matplotlib_Animated_Scatter.py
Demo_Matplotlib_Browser.py
Demo_Matplotlib_Browser_Paned.py
Demo_Matplotlib_Embedded_TEMPLATE.py
Demo_Matplotlib_Embedded_Toolbar.py
Demo_Matplotlib_Grid_of_Graphs_Using_PIL.py
Demo_Matplotlib_Image_Elem.py Moved visibility setting out of the drawing function for better performance 2021-06-30 10:58:41 -04:00
Demo_Matplotlib_Image_Elem_Spetrogram_Animated.py New Demos of Matplotlib animated spectrogram - threaded and not threaded 2021-06-30 10:58:12 -04:00
Demo_Matplotlib_Image_Elem_Spetrogram_Animated_Threaded.py New Demos of Matplotlib animated spectrogram - threaded and not threaded 2021-06-30 10:58:12 -04:00
Demo_Matplotlib_Ping_Graph.py
Demo_Matplotlib_Ping_Graph_Large.py
Demo_Matplotlib_PyLab.py
Demo_Matplotlib_Styles.py
Demo_Matplotlib_Two_Windows.py
Demo_Media_Player.py
Demo_Media_Player_VLC_Based.py
Demo_Menu_With_Toolbar.py
Demo_Menubar_Custom.py Replaced old MenubarCustom with the new one built into PySimpleGUI 2021-05-20 15:07:05 -04:00
Demo_Menubar_Custom_and_Traditional.py
Demo_Menus.py
Demo_MIDI_Player.py
Demo_Multiline_cprint_Printing.py
Demo_Multiline_Elem_Input_Justification.py
Demo_Multiline_Multicolored_Text.py Fix for missing font on debug print. Addition of font to Multiline demo program 2021-06-10 10:47:31 -04:00
Demo_Multiline_Right_Click_Menu_Clipboard.py Moved clipboard operations to a single function to make event loop cleaner 2021-06-06 10:31:54 -04:00
Demo_Multiple_Windows_Experimental.py
Demo_Multiple_Windows_read_all_windows_25_lines.py
Demo_Multithreaded_Animated_Shell_Command.py
Demo_Multithreaded_Calling_Popup.py
Demo_Multithreaded_Different_Threads.py
Demo_Multithreaded_Logging.py
Demo_Multithreaded_Long_Shell_Operation_Animated.py
Demo_Multithreaded_Long_Task_Simple.py
Demo_Multithreaded_Long_Tasks.py
Demo_Multithreaded_Multiple_Threads.py
Demo_Multithreaded_popup.py
Demo_Multithreaded_ProgressBar.py New Demo - Threaded Progress Meter 2021-06-05 19:05:08 -04:00
Demo_Multithreaded_Write_Event_Value.py
Demo_Multithreaded_Write_Event_Value_MultiWindow.py
Demo_Nice_Buttons.py
Demo_NonBlocking_Form.py
Demo_Notification_Window_Alpha_Channel.py
Demo_Notification_Window_Fade_In_Out.py
Demo_Notification_Window_Multiprocessing.py
Demo_Notify_Integration.py New Demo - Integrate with notifypy package 2021-06-23 13:52:15 -04:00
Demo_one_line_progress_meter.py
Demo_OpenCV.py
Demo_OpenCV_4_Line_Program.py Fix for scrollable column still scrolling despite contents being smaller than what should require scrollbars 2021-04-29 16:20:38 -04:00
Demo_OpenCV_7_Line_Program.py
Demo_OpenCV_Draw_On_Webcam_Image.py Switched to ppm format. Changed tkinter specific call to Graph.send_figure_to_back for portability 2021-06-20 08:06:07 -04:00
Demo_OpenCV_Simple_GUI.py
Demo_OpenCV_Webcam.py
Demo_OpenCV_Webcam_ASCII.py
Demo_OpenCV_Webcam_Minimal.py
Demo_Paned_Window.py
Demo_Password_Login.py
Demo_PDF_Viewer.py
Demo_Pi_LEDs.py
Demo_PIL_Rounded_Rectangle_Buttons.py Improvements to the newer PIL demos 2021-05-25 14:16:21 -04:00
Demo_PIL_Toggle_Button.py Improvements to the newer PIL demos 2021-05-25 14:16:21 -04:00
Demo_PIL_Use.py Fix for ICON_BASE64_LIST having been renamed in PySimpleGUI but not in the demo 2021-05-24 09:46:24 -04:00
Demo_Ping_Line_Graph.py
Demo_PNG_Thumbnail_Viewer.py
Demo_PNG_Viewer.py
Demo_Pong.py A new reworked version of pong! 2021-05-31 17:40:38 -04:00
Demo_Pong_Multiple_Platforms.py
Demo_Popup_Custom.py
Demo_Popups.py
Demo_Post_An_Issue.py Updated instructions, confirmation message, etc. 2021-04-07 21:21:30 -04:00
Demo_Progress_Meter_Simulated.py
Demo_Progress_Meters.py
Demo_psgtray_Tray_Icon_Tkinter.py Demo program for use with psgtray 2021-06-21 10:07:51 -04:00
Demo_psutil_Kill_Processes.py Made window expandable, keep the filter in place so that refreshes filter immediately, added edit me option. Sizegrip added. 2021-07-21 10:18:06 -04:00
Demo_psutil_Kill_Python_Processes.py
Demo_PyCharm_Diff_2_Files.py
Demo_PyCharm_Launcher.py
Demo_PyCharm_Self_Edit.py
Demo_pyfiglet.py
Demo_PyGame_Integration.py
Demo_PyGame_Snake_Game.py
Demo_Pyplot_Bar_Chart.py
Demo_Pyplot_Bar_Chart2.py
Demo_Radio_Buttons_Simulated.py
Demo_Reddit_Search.py
Demo_Save_Any_Window_As_Image.py
Demo_Save_Window_As_Image.py
Demo_Save_Windows_As_Images.py
Demo_Script_Launcher.py
Demo_Script_Launcher_ANSI_Color_Output.py
Demo_Script_Launcher_Realtime_Output.py
Demo_Script_Parameters.py
Demo_Separator_Elements.py
Demo_Settings_Save_Load.py
Demo_Simple_Material_Feel.py
Demo_Sort_Visualizer.py
Demo_Spinner_Compound_Element.py
Demo_Status_Bar.py
Demo_Stdout.py
Demo_Sudoku.py
Demo_Sudoku_1_Line.py Added some whitespace to make things more readable 2021-05-31 15:41:31 -04:00
Demo_Super_Simple_Form.py
Demo_System_Tray_GUI_Window_Design_Pattern.py
Demo_System_Tray_Icon.py
Demo_System_Tray_Reminder.py
Demo_Table_CSV.py
Demo_Table_Element.py
Demo_Table_Pandas.py
Demo_Table_Simulation.py
Demo_Table_Simulation_Arrow_Keys.py
Demo_Tabs.py
Demo_Tabs_Nested.py
Demo_Tabs_Simple.py
Demo_Theme_Add_Your_Own.py
Demo_Theme_Browser.py
Demo_Theme_Change_Your_Windows_Theme.py
Demo_Theme_Color_Swatches.py
Demo_Theme_Previewer_Dark.py
Demo_Titlebar_Custom_Async.py
Demo_Titlebar_Custom_Dark_Theme.py
Demo_Titlebar_Custom_Multiple_Combinations.py
Demo_Titlebar_Element.py
Demo_Touch_Keyboard.py
Demo_Tree_Element.py
Demo_Turtle.py
Demo_Unicode_Characters.py
Demo_Uno_Card_Game.py
Demo_User_Settings.py
Demo_User_Settings_Browse_File_Folder.py
Demo_User_Settings_Class_Remember_Input_and_Combo.py
Demo_User_Settings_Remember_Input_and_Combo.py
Demo_Window_Background_Image.py
Demo_Window_Disappear.py
Demo_Window_Location_Finder.py Added support for all 4 corners 2021-05-11 10:15:04 -04:00
Demo_Window_Open_Multiple_Times.py
Demo_Youtube-dl_Frontend.py
Demo_YouTube_Intro.py
exampleGIF.gif
logo200.png
ping.py
readme.md A little more info about the Demo Programs folder and other project folders.... 2021-05-23 10:06:55 -04:00
red_plus.ico

PySimpleGUI Demo Programs

One Stop Shopping For Templates and Techniques

This folder of over 170 programs is your jump-start, spring board, boost, shove in the back, cheat sheet to get you to a solution as quickly as possible. You can think of them as Recipes from a large PySimpleGUI Cookbook.

Programs in this folder have a range of uses and reasons for existing

  • Demonstrate a particular PySimpleGUI Element / Feature (Tables, Trees, Buttons)
  • Design patterns are "official" ways to get something done (Multiple windows)
  • Integrate PySimpleGUI with another package / technology (OpenCV, Matplotlib)
  • Assemble PySimpleGUI elements in a useful way (Bar graphs, games)
  • Additional user code that enable new functionality (ANSI color strings)
  • How to deal with common GUI problems (work requiring lots of time)

Demo Program Browser

The best way to work with these demos is to use the Demo Program Browser. You'll find installation instructions in the Cookbook. This browser will enable you to search by filename and also enable you to search inside the demos, a particularly powerful capability.

Coding Conventions

Special attention is given to the programs in this folder to ensure they conform to the latest "preferred" technique or naming convention. In the past, when technique changed, so did all of these demo programs. For example, the use of the FindElement method was replaced by using [ ]. All of these Demo Programs were updated to use the new convention.

For example, this line of code:

window.FindElement('status').Update(event)

was replaced with:

window['status'].Update(event)

There was a recent sweep through all of the Demo Programs where all code was changed to use the PEP8 naming conventions / bindings. All calls to Window.Read() were changed to window.read()

PySimpleGUI is on a swift development path. In a short amount of time a lot can change. To help ensure that users are using the latest, preferred, methods of using the PySimpleGUI package, these Demo Programs are the vehicle in which to communicate the latest design patterns.

Take a look at the Cookbook for more information about coding conventions used.

Ports

Not all of the programs presented here are limited to the tkinter port of PySimpleGUI. Some programs show multiple import statements with some that are commented out. This is done to show you that the code is capable of running more than 1 platform. This example is from the Demo_Matplotlibe_Two_Windows.py file

from matplotlib import use
# import PySimpleGUI as sg
import PySimpleGUIQt as sg; use('qt5agg')

This indicates that the code can be run on either the tkinter or the Qt port. To switch ports, uncomment the one you want to run on and comment out the others.

There are Demo Programs folders under each of the ports folders in the GitHub.

Running Demos Online

Recently two online Python services have been used to demonstrate using PySimpleGUI- Trinket & repl.it. You will find not only some of the Demo Programs from this folder on these sites, but other demo programs as well. They make good "scratch pads" for posting PySimpleGUI code. They are superior to GithubGists because not only can you share your code, but people can run the code without having to install or do anything locally.

Trinket

If a demo does not require another package be installed and it's not specific to a particular platform then there's a possibility that it can be run online using Trinket. You'll find a number of these Demo Programs have been added to the PySimpleGUI Trinket pages.

The benefits of using Trinket include

  • No need to install PySimpleGUI or even Python on your local machine
  • Additional explanation can be included with the code, including images

You'll find the demos that have been added to Trinket here:

http://Trinket.PySimpleGUI.org

Repl.it

Prior to discovering Trinket PySimpleGUI demo programs were being hosted online on repl.it. Repl.it has several advantages over Trinket including:

  • Able to run both PySimpleGUI and PySimpleGUIWeb programs
  • Can use other packages with PySimpleGUI
  • Can pip install specific PySimpleGUI versions to use

You'll find a list of repl.it demos here:

https://repl.it/@PySimpleGUI

These programs may not be the most up to date and in fact are likely to contain old coding constructs and examples. As a result, use them more of a demonstration of "what's possible" rather than "exactly how to do it".

Other Sample Code in this GitHub Account

The PySimpleGUI GitHub account has a number of repos that contain larger applications that use PySimpleGUI. A few linger in the PySimpleGUI project folder like the HowDoI, chess, exemaker, and some user created programs. They'll get moved out at some point. Until then, browse around the repo. Explore a little. Some are older, some newer, but none are as important as the Demo Programs folder which is kept up to date.

Support

These programs are not "officially" part of the PySimpleGUI code. They are not installed when you do a pip install for example.'

They are demonstrations, examples, and as a result may not be fully built-out, completed programs. In order to keep the code simple, they may not have all of the error checking that your program should have.

If you encounter a problem where a demo no longer functions, you are of course encouraged to open an Issue on the GitHub.

If you encounter more subtle problems, you should take into account that these programs are demonstrations, not end-user products. For example, if an image viewer application doesn't display all types of image files like JPGs, then that's more than likely a limitation that the underlying GUI Framework has rather than a bug. In this example, it's your responsibility to figure out how to convert your images into a format that's understood by the framework rather than an improvement needed in the demo program that will show you how to do that.

Author

The PySimpleGUI Organization and PySimpleGUI users

If the code has been provide by a PySimpleGUI user, then the comments at the top of the program will indicate the author.

License

Copyright 2019 PySimpleGUI.org

GNU Lesser General Public License (LGPL 3) +