PySimpleGUI / PySimpleGUI

Python GUIs for Humans! PySimpleGUI is the top-rated Python application development environment. Launched in 2018 and actively developed, maintained, and supported in 2024. Transforms tkinter, Qt, WxPython, and Remi into a simple, intuitive, and fun experience for both hobbyists and expert users.

Home Page:https://www.PySimpleGUI.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Question] Post your screen shots here!

MikeTheWatchGuy opened this issue · comments

Type of Issue (Enhancement, Error, Bug, Question)

Question


Operating System

ALL

PySimpleGUI Port (tkinter, Qt, Wx, Web)

ALL


Versions

Version information can be obtained by calling sg.main_get_debug_data()
Or you can print each version shown in ()

Python version (sg.sys.version)

ALL

PySimpleGUI Version (sg.__version__)

ALL

GUI Version (tkinter (sg.tclversion_detailed), PySide2, WxPython, Remi)

ALL


Your Experience In Months or Years (optional)

Years Python programming experience

Years Programming experience overall

Have used another Python GUI Framework? (tkinter, Qt, etc) (yes/no is fine)

Anything else you think would be helpful?


Troubleshooting

These items may solve your problem. Please check those you've done by changing - [ ] to - [X]

  • Searched main docs for your problem www.PySimpleGUI.org
  • Looked for Demo Programs that are similar to your goal Demos.PySimpleGUI.org
  • If not tkinter - looked for Demo Programs for specific port
  • For non tkinter - Looked at readme for your specific port if not PySimpleGUI (Qt, WX, Remi)
  • Run your program outside of your debugger (from a command line)
  • Searched through Issues (open and closed) to see if already reported Issues.PySimpleGUI.org
  • Tried using the PySimpleGUI.py file on GitHub. Your problem may have already been fixed but not released

Detailed Description

Take a moment to drag and drop a screenshot into a comment in this issue.

It'll help other people see what's possible and perhaps come up with ideas or uses not previously thought of.

I've already seen a couple of really good ones. Help your fellow Python programmer out by posting your creation.

Code To Duplicate

None

Screenshot, Sketch, or Drawing


None

Watcha Makin?

If you care to share something about your project, it would be awesome to hear what you're building.
None

OK, so this didn't catch on the way I had hoped....

I'm finding some cool examples being posted on GitHub.... if user's won't post them, I sure will! What I'm finding are surprising. The calculator example isn't just a calculator, the author created a new button class based on PySimpleGUI.ReadFormButton

calculator

Hey! Here are some screenshots of a web automation tool overlay I'm building with with PSG. It is letting me quickly implement without clunky nuance requirements, and provide nice functionality that I really wasn't planning on doing before finding PSG. Thanks!

image

image

image

image

image

image

image

topanga - Test Anatomy

PSG is awesome!

Thank you! This is SO helpful to us all. I've already picked up several ideas from what you've done and I'm sure others will too. And thank you for downloading and using the PSG logo 👍 It's better than the default tkinter logo in my opinion.
This kind of post is greatly appreciated to say the least!

Haha no problem and thanks for the tool itself. About the icon.... don't look too hard at these screenshots!

Here's another screenshot with a new theme I'm still working on...

image

@eagleEggs Just thought of a cool feature for you to use. Maybe your buttons already take care of this, but could work out nicely.... that feature is Menus. And in particular the tear-off menus. They essentially become floating toolbars without icons and instead use text.

floating menu-toolbar

That is pretty cool. Will be looking into it.

The most interesting thing I've got in my program:
image

Basically a fancied up version of listBox where the user can choose multiple options. Saw it in other programs and wanted one for my own. It also has an advantage over listbox (I think) because when I had a lot of fields on a form, the regular listbox doesn't keep track of the selected values when the focus moves away. So instead, I use this like a popup to keep track of what was selected and allow modifications.

I didn't see any tree element screenshot, so here's a sample from a program I'm writing:

tree_256

Spun off some functionality from my larger testing tool for easy use of specific functionality still using PSG :)

image

A program I wrote in Python using PSG. I use the old-fashioned descript.ion files from the MSDOS days. (Old, but I don't know any better alternative for Windows.) I use comments to label my code, audio, and video files, but need a way to search for them by comment. This is my home-grown solution.

The back end of the screenshot of the program you see is a SQLite database that maps files to their respective descriptions. The database was built by another Python program. (There are three separate Python programs, and I need to integrate them.) The front end to this query program is PySimpleGUI using the latest version of the Table element to display the result set. The PySimpleGUI code is only 70 lines in a 118-line program, including comments and blank lines. You can customize the result set by choosing different databases, and customizing your search using custom queries using SQL or full text search. You can further filter your results using the filter pattern that I picked up from another of Mike's examples. You are looking here at part of my Projects/Python folder, filtered by the keyword 'simple'.

You can select a folder or a file and click on Open. Opening a folder opens the folder in Windows File Explorer. Opening a file opens the file in its default app. I wish there was the ability in PySimpleGUI to capture the double-click event in the Table element and open the file, like you can in Windows File Explorer, or in the PySimpleGUI List element. I actually wrote three versions of this program, trying to get as much functionality of a Win32 ListBox as I could:

  1. Using PySimpleGUI and the List element
  2. Using PySimpleGui and the Table element
  3. Using TKinter and the Treeview element used as a multi-column list

2018-11-03 21_19_10-description file query

Ah, yes, double clicking. Let me look at how to make that happen. It'll be another version of select submits.

DONE... added... if you set the parameter bind_return_key to True then it will return an event for both the return key and double-clicks, just like listbox does.

See issue which was opened as an enhancement request...
#654

Completely revamping my GUI as when I gave it to users it was way too convoluted. Here are a few shots of an extremely simplified main menu, and pop out windows for those options. I'm learning a lot about how to design for users now, which actually simplifies the application overall and makes less work lol:

image

Also, spun off functionality from that tool to make htis GUI as well. Super easy with PSG :)

image

Woooowww! Are those "real" screenshots?? You did images on your buttons and made them really big. They like a mobile interface. Very nice. All of this will translate over to Qt easily should you ever go that way. Even button images should work. The downside is all that sizing you did will have to be redone.

I really like the looks of theses.

Haha thanks. Yea they all expect mobile stuff now and if it doesn't look clean and obvious no one will use it :/ It does help to simplify your app though when thinking about it from their perspective!

I took what was 11 tabs and a big window, into 3 buttons on a smaller window. Phew.

Here are some new screenshots of a major UI overhaul in making a test framework on top of Selenium:

image

Config:
image

Build:
image

Yes, that is a temp password for a local DB - No worries.

lidar gui

Ran into this one while cruising GitHub. I'm seeing some nice looking GUIs!

snag-0258

Another GUI found on GitHub

I needed a log window that supported multi-colored text. I was using the TKinter Text widget, but that required me to write my entire UI using TKinter, even though I wanted to use PySimpleGUI. I tried subclassing the PySimpleGUI Multiline element and adding a couple of methods that access the TKText attribute. Taking the program I wrote using TKinter, I rewrote my entire GUI using PySimpleGUI and this subclass. It cut the lines of GUI code by 50%. The only thing I lost was the ability to resize the window and the widgets it contained. The learning value is that if a PySimpleGUI doesn't do exactly what you want, you can still sub-class it and add your own functionality, without disturbing the base code.

Here is a quick sample screen shot using this subclassed Multiline element. If there is any interest, I can upload a small demo program consisting of about 80 lines of code. I figured this might be useful where you are logging test cases and want to highlight critical results.

I am also including a screen shot of my SynchDir program, which synchronizes directories (now with PySimpleGui, not TKinter). I use different colors to indicate copy, move, delete, etc. What's unique is the window consists of two frames. I defined the frames separately, then combined them into one layout. I also found out that adding hotkeys is a snap using return_keyboard_events=True. I saved about 5 lines of code over using TKinter.

2018-11-20 13_44_42-log window

2018-11-20 13_55_56-synchdir

I typically named tkinter variables consistently. For the elements', their base widget object starts with TK. For example, the slider's tkinter widget is a Scale.

The scale object that's used for a slider is named element.TKScale.
Spinbox is TKSpinBox.
Radiobutton is TKRadio.
Checkbox is TKCheckbutton.
etc

You can easily "go around" the PySimpleGUI SDK to access a variety of features. There was an officially sanctioned one that I recently gave to someone that I have now forgotten.

Just finalized and released EHX tool officially. Thanks again for a great tool to quickly build GUI's. It definitely played a part in completing this project with it's flexibility and your active support.

Again here is a screenshot and a few from the larger tool that this derives from this which is near completion. I'm looking forward to using PSG again on my next project :D

image

image

image

image

image

image

Working on graph visualizations... But I love the heat map and need to get it more condensed.

Also very cool MIT license icons used: https://octicons.github.com/

Very cool.. I like the Make More Readable... it does that well!

commented

Very cool.. I like the Make More Readable... it does that well!

Thanks, I am confronted with a challenge though and I don't know where to ask my question. I want some semi-complicated rules to apply to the input numbers. I felt I was on the right path until I added the keybinding so that I could capture pageup and down to advance the records. Where would I pose this question in detail?

Box calculator for print jobs:

boxcalculator

Did you use Columns to lay out your window?

It looks great.

Just an update. PSG rules.

image
image
image
image

Woooooowwwwwww!

This is Reddit post territory for sure. OMG, this looks amazing.

People often post asking "is it possible to make tkinker look good". Stuff like that. You can also plug PSG of course ;-)

This was beautifully done. Nice job. I'm sure your users love it.

Thanks! I'll put up a post here this week.

There are also a few other windows used from the main window, which is for customizing reports, viewing graphs, and viewing license. The build window also has that sl button which converts the window to include some extended optional functionality. It stands for sideload which loads a module that is not packaged in the build so you can modify functions and reimport at runtime. So in total there are 8 windows that work perfectly!

Using PSG has been really fluid. It's been a lot of fun, thanks for continuing support!

It's beautiful stuff you've done.

This sounds like the project went WAY WAY WAY beyond your initial vision for it. You've continued to iterate and make it better every time I see it.

Graphs?! Show some windows doing their thing, filled in too!

You may want to keep PySimpleGUI out of the title of a Reddit post however. But feel free to mention in your post itself. Tired of the comments claiming PySimpleGUI is only good for prototyping, nothing complex and be built with it. It'll be nice to have a great looking project to link to.

But beyond the GUI advertising that I'm requesting, there is the seriously cool nature of the thing you've built. I dunno, but I get a sense this is an impressive product you've created.

If this guy's software is getting up-votes....
https://www.reddit.com/r/Python/comments/b5nmkx/i_made_a_gui_for_youtubedl_but_its_just_entry/

Then sure as hell your's will!

Haha it has gone beyond original scope definitely. Now I think of it as an application, not just a tool or script.

Essentially it's a wrapper around Selenium and PyAutoGUI. But I've added lots of custom functionality and flexibility for the purpose of cutting out a lot of flak, so a user doesn't need to know how to code or understand loops, functions, variables, and such but still build maintainable code. All of that complex logic is built into the backend so they just need to pass basic info to it from the scripts they make.

Our team has used it and actually just finished the first project it's using. The team had zero coding knowledge and built out thousands of lines of automation code with it and we now save what once took two physical weeks of testing into 11 minutes. We've already saved a month this year across two builds of what we develop there. The next project is for a larger project which will save even more time overall through the year. I'm estimating once a year we'll save 2.5 months of time we used to pay people to test, and potentially 3.5 months if there happens to be more builds than usual. That's a lot of dough. And the fact that you don't need an automation engineer to understand the code, that's a bonus for maintaining it going forward.

It's browser agnostic, customizable, flexible, and gives full control over the process. Which was important to me to have something custom that we understand and can fully control as opposed to using a closed source automation tool, or complex scripts and requirements using an existing framework or an app that we have no idea what is going on in the backend. Basically just abstracted the complexity into a custom test framework and put it in the background so creating, modifying, and understanding the scripts is simple. Also this way if there are issues or changes to be made they can simply be made.

There have been some development issues due to time restraints that I'm not happy about but will get to them later. Like I have one global variable that really pisses me off! They became a bit impatient so I had to cut a few corners and now I'm like ahhhh whyyy. Also there is a hardcoded variable from the main loop I did to save time and a few arguments I threw in that are too reliant on the main loop for my taste :P It works fine I just don't like how I bandaged it up and left it - Might make future changes more difficult and less flexible.

But I'm not sure why people think that about PSG at all, but I suppose it's in how you use anything really it's up to how you implement it. My main loop is ~1900 lines, total app is ~3600. There is no reason PSG can't be used in higher capacity as it's up to the dev to build logic around what you've provided that is very easy to use.

Thanks again for the kind words!

Woowww! (again). You're saving the company a FORTUNE and you're also stepping the quality level up a LOT. If your 2 weeks turned into 11 minutes, then holy shit, you've not only done the work, but now you've got a team available for 2 full weeks. OMG, companies would kill for that kind of return.

Your boss better step up at bonus time, or before. I would consider broaching the subject in some manner with him / the company. "You can't get when you don't ask for" has served me very well in business. And you sure as hell deserve something special for what you've done.

I don't think you're wrapping anything. You've built a full application that uses some available Python packages. That's just plain ole Python (done wisely to take the advantage of other people's prior work).

Yea! It was an amazing feeling when I walked into the office last week and didn't know that a new build had dropped. I started chatting with my coworker and he said that he ran it right when it dropped that morning and it all passed; logs, sql data, and report was made. I was like, oh cool. But then it hit me that he just clicked a button and in 11 minutes it was done. Usually it's a whole process across two weeks where the whole team allocates a full schedule to test it. That's when we fully felt the magnitude of what it was :D Amazing.

Ironically, it was the testers who used the app to build the scripts. Which may get a bit awkward... But this just means they can focus on more complex manual testing and not the mundane repetitions.

Also I'm in talks right now actually about what you're saying, thanks for the advice.
And I think you're right about using python packages :)

image

Hello, it's my first exercise with PySimpleGUI and I'm very happy with the results, if you get creative you can get good results, the only thing I had problems with was the transparency of the images, I will continue studying, I was with Kivy because of his ability to export to mobile systems, I really like the approach of this library, I thank the creators, and it would be really great to have something like this for mobile, in the end I could solve my doubts by reviewing the code of the library, since in the documentation there is still no information of some things in specific, greetings!

@killyone if you find places in the documentation http://www.PySimpleGUI.org that is lacking, please post it as an Issue. As you may have read over the past few weeks, there's is a lot of effort being spent on the documentation.

@killyone Do you have any more screen shots you can share? You app was looking REALLY good and I Can't wait to see how it turns out, or even what it look like along the way. I'm SURE lots of us will find inspiration in what you did. I know I have a lot of ideas now about layout, font sizes, etc. You've made a nice looking "pattern" of sorts.

This one is from @SuperMechaDeathChrist. Hoping to get more soon!

Captura

I used PySimpleGUI to display information over my automated Twitch stream. (Twitch Plays Chess) (https://www.twitch.tv/chess_magnet)

This is just the GUI shapes on their own with no text/nothing happening.
GUI

Here it is on my screen,
SeleniumWindow

And here it is on stream after further manipulation by OBS ,automated by janky Python-OBS file saving stuff.
OBSView

There are some features that aren't represented due to taking the screenshots when I'm the only player. If there were active players when I took the screenshot, the bottom right would be filled with chats from viewers instead of an automated message. There can be up to 10 bars on the left that represent the percentage of votes for a given move. The length of the bar and shade of blue are determined by the % of votes. The green bar recedes as an internal timer counts down, I am impressed with how smooth it can move! I did it by hand with a graph instead of a progress bar because I don't like the aesthetic of the edges of the progress bar and I couldn't get rid of them.

Here are a few that can be found on this download manager's GitHub site:
https://github.com/Aboghazala/Hanash

concurrent_windows
downloads
main

Ok, now it's getting there. Here I'm using PSGWeb for a powershell management concept (Everything is procedural - No hardcoding any of the data):

image

I'm not sure if someone already tried something similar, but here is a mini video player that plays my favorite music videos from youtube.

ezgif com-optimize

Uhhhh.,..... no.... this isn't a cruel joke?

How are you getting sound?

No one's posted anything like it. I'm dying to see the code!! WOW. This is a first as far as I know.

@PySimpleGUI I get the direct link to a video from a normal youtube link using pafy (I made another program to scrap my playlist that had 400+ videos). The video is being played using the python bindings for vlc (you also need to install vlc but that can be done in any platform). With that, you can create and control a video window that you can also embed into a tkinter canvas element. The rest is just the classic gui scheme. It works very well, although it's still a little messy, I can share the code when it's cleaner.

@killyone Have you released your software anywhere? The screenshot you posted is unique among PSG applications I've seen. It would be awesome to see your code & graphic assets. There continues to be questions, over and over, about "How can I make tkinter not look ugly?" (-sigh-)

I understand if you don't want to share your code publicly until it's in the state you want it to be in. You can send it privately if you want. I don't need the entire program. I'm just interested in your layout and your event loop / drawing calls. It doesn't need to run. You don't need, of course, to include any Keys that you may need to get access to YouTube APIs.

I'm working on another project that could really benefit from this is why I'm asking. If you feel more comfortable, email just those bits to sourcecode@PySimpleGUI.org

@PySimpleGUI I sent you the code for the video player, let me know if you can get it to run

@killyone I don't understand why was excluded my comment, but my email are in my profile, so if you still would wish send me the code, I thank you.

I just assumed you guys had done your communicating. This isn't a forum, it's a place to post screenshots. That's why the comments are being deleted.

This is a "splash screen"-like function using PySimpleGUI (tkinter, Windows). It basically is just a program with an animated picture and a cancel option that interrupts the execution of the whole program. It supports transparency and fast load of the animated picture. You can adjust the speed of the animation, the wait time, and other options.
ezgif com-video-to-gif

You can call this function at the start of your program to emulate a splash screen.
link to code: https://github.com/SuperMechaDeathChrist/Widgets/blob/master/Splash.py

A serial oscilloscope

I had forgotten about this project, but stumbled back onto it today. I think a screenshot is certainly in order for this one. VERY nice.

Project's GitHub https://github.com/dilawar/SerialScope

image

Recently posted screenshots by @JitsuP who has only been using Python for 3 months (astounding). Even more impressive is that this multi-windowed GUI took only 3 days in total to write. WOW!

It's even multithreaded....

70087235-274e1c00-15d1-11ea-8f81-582f7c3c05ef

image

image

image

This is a PySimpleGUI-tk app with an embedded internet browser based on cefpython. Needs a little tkinter tweaking for entry elements to work normally, but it works surprisingly well and in less than 100 lines of code. I guess now the sky is the limit if you combine it with flask/django or anything web-based.
browser_example

WOW @SuperMechaDeathChrist another amazing thing! That's incredible! Especially since it's the plain PySimpleGUI, not Qt.

Capture

Admin Dashboard

It was a great start anyhow! Loved using PySimpleGUI. Wish to learn more on other controls. Made a great help for my ML Project

@thesoftbincoder

Thank you so much for sharing!

It looks like more than "a great start". There are a lot of people that would love to have GUIs that look this nice.

I don't recall you posting any Issues here looking for help. I hope that means you didn't run into too many problems. I see frames, images, aligned elements. You've spent time thinking about your design and it shows.

I'm really happy you have had some success using PySimpleGUI! Made my day 🙂 at a time where good news is so nice to hear.

When you think you're ready, post it on Reddit too. People love to see projects, success stories, especially when there's something visual.

Thank you for taking the time to post something.

Screenshot from 2020-04-30 03-58-11
Screenshot from 2020-04-30 04-11-25
I love this framework so much, it allowed me to start programming GUI very fast. I'm building an image managing system much like DigiKam but more focused on the image tagging, this will specialize on metadata handling and image clasification.

What I also wanted to share is that, in the need of a treeview with checkboxes and seeing that it would be very complicated to code it from outside, decided to implement the functionality directly in PySimpleGUI so I now have a native Tree element with working checkboxes if you guys are interested.

Hello @PySimpleGUI, I have created a PDF-Viewer using THE AWESOME PSG.

pdf

The GUI is 100% ready, there are some things that I am working on right now like:

  1. Convert application language into English
  2. Fix bugs for searching feature
  3. Add zooming etc
  4. Code is mess (trust me I know), I will be beautifying it very soon

You can find the project here

How long did it take to make this?
I think if we talk about GUI, one the first 2 days I made almost 60% of the GUI. The CookBook and extensive documentation was key for my success.

What was the most and least helpful?
I didn't understand this question, but I will answer to the best of my knowledge. The most helpful thing was the Simplicity of PSG. Everything is very simple and pythonic to develop.
As a python programmer, we are inclined to find simple and elegant solutions, its the core nature of python language.

Simple is better than complex

The least helpful part would be that often now and then, we want to implement a feature, that is not present in PSG (It is in development phase we understand). So, we have to find a way around or completely leave that feature because of this limitation. But, again this limitation is not going to keep us from using PSG.

What was your experience like?
My experience was great, believe me I have left working on it because I couldn't find my way into Tkinter, pyQT etc. I just don't like them (sorry). But, as soon as I came across PSG, I knew that I am going to make use of it, its just what I want Simple and Pythonic

Thanks @PySimpleGUI, this is for you

des

@Zain-Bin-Arshad I am genuinely thrilled at your success! Thank you for taking the time to not only share your creation but for providing some extremely helpful feedback. 👍

Hello to everyone,

i am not really a software developer, so i am all the more grateful for any simplification. My partner sometimes gives astrological consultations and the online platform she uses limited her database to 100 entries. Since this database gets very full very quickly, I promised to write a small program that will pull her client data from the platform into a local database (sqlite3) for her. This escalated quickly. Now it has become a tool for the whole consulting business and it grows with her demands.

main
(The texts are in german, but I think the program is still understandable)

database
(A typical database with ADD, DELETE, EDIT, SHOW)

pull
(Multiline element as an output for obtaining data from the astrology platform)

chart
(The astrocharts. I used the PySimpleGUIQt version so that I could use antialiasing for the QGraphicsView aka .graph to avoid eye cancer. For the display I had to use the QGraphicScene from PySide2 via .graph().widget (headache). The Pixmap transformation still looks pixelated.)

consultation sheet
(She can have a consultation page printed. The notes will be generated depending on the client's planet positions at birth.)

study_databasepng
(Finally, it can search for clients with the same planet constellations to make comparisons.)

Hope you are having a good day @PySimpleGUI
I made this for a course assignment about genetic algorithms and their performance.
I have published this on my GitHub if someone is curious.

Screenshot (118)

Screenshot (120)

Basically you specify all the parameters and after running the algorithm multiple times it displays the performance graph in a new window.

Wow! Just WOW to the posts over the past few weeks from users.

I'm so impressed by what people are making! Thrilled for everyone!

Thank you SO much for taking time to share. I'm hoping to have a "Gallery of User Creations" happening soon. There are 712 projects listed at the moment on GitHub alone that use PySimpleGUI. Have no idea how many that are not listed on GitHub.

Thank you to @thesoftbincoder @Ruakuu @Zain-Bin-Arshad @ChristanReizner for posting!!

Fantastic users here!

This project was developed as a prototype on ATM Transactions. Users need to Upload their Iris Image and later while they withdraw amount they need to upload their iris image again. After algorithm processes the iris data. The amount will be successfully withdrawn.

This is the Customer Dashboard
image

Iris Image Upload Window
image

While the user selects the Iris Image
image

Amount Withdrawal Window
image

After Successful Iris Verification
image

It takes some time to complete the algorithm process. Anyhow i'm feeling good and comfortable at using @PySimpleGUI .
Thank You For such a wonderful Package.
Hope to get more components Soon.

Hello @PySimpleGUI,
I have made this GUI for analyzing meteor spectra. You can read video files with meteor spectra, transform the images to an orthographic projection, register meteor images and add them, convert to 1-dim spectra and calibrate them and plot the final result. You can look at the code here, but I warn you, the code is quite a mess. To see how it works, look here
the theory behind it is found at https://meteorspectroscopy.org/
Setup:
m_spec setup
add rows:
m_spec add rows
Calibration:
m_spec calibration
plotting:
m_spec plot spectrum
final result:
S20191214_231941_MAI_2label
I hope, somebody else may find this useful.

WOW!

Another 2 more apps added to the parade of impressive creations. These are so very exciting to see and demonstrate the crazy span of applications PySimpleGUI is being used for. Just look at these last 2 posts:

  1. Iris scanning for security of ATMs
  2. Analyzing meteor spectra

Love them both!
Thank you for taking the time to post these. Be sure and put screenshots in your GitHub';s readme.

REALLY REALLY want / need to get a user gallery going so these can be properly shown off to everyone.

I'm wowed every time!

@mbilalakmal If forgot to comment on your awesome looking GUI and ask for your GitHub address. You mention one exists in your screenshot post, but don't provide the address. I'm sure others would enjoy seeing your work.

Thank you for taking the time to post screenshots and info!

@mbilalakmal If forgot to comment on your awesome looking GUI and ask for your GitHub address. You mention one exists in your screenshot post, but don't provide the address. I'm sure others would enjoy seeing your work.

Thank you for taking the time to post screenshots and info!

I have added the repo link in my original comment. I'm glad you liked it.

grafik
Pup Quiz facilitates vocabulary acquisition by quizzing words using spaced repetition principles: words just learned / which user recently got wrong are quizzed more often than those which they've guessed correctly. On the side it shows pictures of puppies that cheer you on. :)
grafik
It's not stable yet (I get, what seems at random occasions, repeated messages about main loop not being in main thread), but the visual appearance is about final.
Edit: Demo video.

I really like this UI! The circular "Add Vocabulary" parts of your window are really nice. Excellent job polishing that portion.

The mainloop not in the main thread is a known problem and there is a suggested workaround along with an explanation for when this will happen.

https://pysimplegui.readthedocs.io/en/latest/#multiple-threads

commented

Audiorecorder (spotify)

A little Programm, that records files form a webside (actually open.spotify) store them as mp3, tag them, sort them into directorys , notify the user when a new song is beginning.
Just like the old compact cassette recorder but with cutting the songs in single files

Very nice @vohe ! Thanks for posting it!
I like they use of tabs. Great , simple layout. I might have to use that idea for settings sometime. It's never dawned on me before to put them into a tab like that.

commented

Very nice @vohe ! Thanks for posting it!
I like they use of tabs. Great , simple layout. I might have to use that idea for settings sometime. It's never dawned on me before to put them into a tab like that.

Thanks for reply, i don't expect that (so fast) ;-)
Please can u tell me where i can post a Question/Featurerequest...?
I mess around with the gettext.py (locale settings)...
Nice time, stay healthy

You can open an Issue to request enhancements, ask questions, report problems, etc.

There are instructions posted here:
#1646

And you can open a new issue here:

https://github.com/PySimpleGUI/PySimpleGUI/issues/new?assignees=&labels=&template=issue-form---must-fill-in-this-form-with-every-new-issue-submitted.md&title=%5B+Enhancement%2FBug%2FQuestion%5D+My+problem+is...

commented

Thank you,
first of all i got it as i like (but not so elegant) First of all it works.
english
german
lowgerman

commented

Hi folks,
here is another one i playing with....
The TreeElement is not as flexible as i want it. But many things are possible.
mockupall

I got the functionallity i want, but the interface isn't that what i like to get. I test another way, may i think of a a cloud of hierarchical buttons ... lets see.. later

My first software project that deserves a mention (and that populated my fresh Github account... did I say I'm quite new?).
The bars for each color have the color of the original image and the other-colored text elements actually update, so it directly shows which color should turn to which. Wanted to enclose them in the Column element, but that can't change its background_color with update function.


screenshot

commented

In addition to get a Folder Browser running , which does not

  • show hidden files,
  • throws errors on Permissions
  • have another thema than the main program itself.
    i wrote my own....
    Popup Directory
    Popup Directory2
commented

Ready to go,
I found that putting move than 3000 elements in a sg.treedata() structure works, but as i close that there'll be a huge garbage collection of tkinter under the hood.
So my directory popup window isn't usable for a 'normal' user directory, especially if the show hidden files option is active.
I decide to use another method to collect all the files and directorys than this one.
Today i get it. Take a look:
Picture
or check it out yourself:
https://gitlab.com/iamvohegg/dirbrowserpopup
Have Fun, stay healthy.

@vohe you've been busy!

image

MegaCheckers! Essentially a grid of buttons, but dynamic enough to technically be a real game.

GitHub.com/MOABdali/megaCheckers if anyone wants to try it. Please keep in mind it's only intended for windows computers running at 1080p or bigger. Linux seems to be incompatible.

Megacheckers looks awesome! All of the stuff people are making are impressive. This game is really advanced looking. I'm super-impressed. Lots of stuff happening.

Well, where to start?? I started using PySimpleGUI in the last week or so. I'm absolutely hooked! What a breath of fresh air it's been. I'm fairly new to programming in python and I've always avoided it due to the lack of rapid GUI development tools. PySimpleGUI sucked me right it, and now I'm picking up python at a blistering pace and absolutely loving the language. Thanks for such a simple, straight forward tool!

With that said, in the last week I've been brushing up on Python, learning PySimpleGUI inside and out, learning about Git (I'm a Subversion user from way back, so Git is new to me as well). Add to that researching packaging in python and a host of other things that are still a bit foreign to me. I use MS Access a lot, as well as LibreOffice base (and don't really care for either of them!). Now that I found this incredible PySimpleGUI, I absolutely had to have a good, simple to use database binding but couldn't find one. Your hard work has inspired me to create a companion module, PySimplSQL that makes writing database front-ends amazingly simple along with PySimpleGUI. With the addition of 3 or 4 lines of code, PySimpleSQL allows for full add/edit/delete of records while managing and respecting foreign key relationships in the database.

I have a very long way to go when it comes to getting my docstrings and documentation up to snuff, handling exceptions and general tidying, but it is already at a very usable point and I plan to polish up everything that is lacking. I literally just set up a GitHub for it today (I truly have a lot to learn about this whole ecosystem, but I'm getting there)

Here is a screenshot of a simple example database front-end coded with PySimpleGUI in combination with PySimpleSQL.
image
This was done in just over 30 lines of code (and could be well under 30 lines of code by removing comments and compacting the layout). 30 lines of code!! (you can grab it from the GitHub here https://github.com/PySimpleSQL/PySimpleSQL (I'll get more/better examples up soon). Try the code- practice adding, removing and editing records. There is a lot going on behind the scenes (managing when to show Add or Delete buttons for example, or automatically populating comboboxes with data from a child table, etc.). But like PySimpleGUI, my main goal for PySimpleSQL is to be very simple to use, yet have enough power and flexibility to handle complex tasks elegantly.

image
Here is a more capable screenshot - This was written in under 200 lines of code using PySimpleGUI in combination with PySimpleSQL (most of which is layout code)

I look forward to learning more and contributing so that others can enjoy fast, easy database GUI interface programming. I just wanted to share the project now that it's starting to take shape. There's plenty of bugs yet and a lot to do, but the early promise is amazing so far!

At the start of lockdown in the UK I had been learning church bell ringing for about a year and wanted to carry on practising and learning the methods even though all bell ringing was on hold. I started developing an app on Raspberry Pi that would play some of the bells but leave me the option to play others and hopefully get them in the right places. I had all of the components in place and working using Q&A character cell interface and was trying to get a useful GUI going with tkinter when I more or less stumbled across MySimpleGUI.

The ropes have a simple 2 frame animation and a red bell is displayed above each rope as it should be rung, think bouncing ball for sing-along.

On the technical side the images are updated by a thread calling the write_event_value() method of the window, the bells that are rung by the application are controlled by a separate process as is the actual playing of the sounds, data is passed back and forth between these processes using sockets and pipes. The bell sounds are played using mixer from pygame, the allows multiple bells to be playing at the same time.

image

Thanks @aajshaw for the really unusual use of PySimpleGUI! That's most certainly a first. Bonus points for using multi-threading to get the overlapping tones.

The first time I ever saw how bells work was in this video about a song I play on the piano that was played using a clock tower:
https://youtu.be/6CQgzqYuo04

That must feel pretty amazing to play an instrument that has such massive reach!! TERRIFYING is how I would feel.

If you don't mind sharing your code, please post a link to your Repo. I'm sure others could learn something from what you did. I know I would learn something.

@PySimpleSQL was a beautiful window! I love the layouts. Clean and you're using button graphic, something rarely done.

The application of PySimpleGUI with databases hasn't been very thoroughly explored. I think one problem is the Table element lack of advanced features like clicking columns to sort. It's far from being an Excel-like experience.

Your story is quite an inspiration. It's these stories that fuel this project. I get as much or more satisfaction at seeing users be successful as the users do.

You've got a great eye for design and layouts, and clearly can write compact code if you managed to get those layouts done in 200 lines of code.

I really want to get a more formal user gallery going soon. There's a massive dump of screenshots in another PySimpleGUI repo. What I want to get set up is a Wiki that has these screenshots and information about the repos along with them. Soon.... it's a high priority to get the docs cleaned up and the gallery done.

Love what you're doing! I'm sure you're likely already doing it, but be sure and put screenshots in your readme. I know users love seeing GUIs in Python as they're a rare find.

Thanks for taking the time to share!! Highly motivational on many fronts.

The link to the bell ringing simulator is https://github.com/aajshaw/Ensenble, in the comments there is some bell ringing terminology but it means something to other bell ringers.

FYI: The heaviest bell in the tower where I ring is 2599lb or 1179Kg if you work in these new-fangled units, it does take a bit of puff to get it going.

Hi everyone,

We have just published our first Python Library: Watermarkd. It's in alpha stage and it allows batch watermarking photos with GUI component in addition to watermarking individual photos, something bloggers, entrepreneurs and photographers may find useful. (Watermark spreading algorithm improvement is in the works!)

I'm pleased to share that we have enjoyed building GUI component of our library via PySimpleGui and we appreciate the library, its simplicity, minimalist ways and overall philosophy so very much.

A post about how to use Watermarkd can be found on HolyPython's website: here

We also have a series of posts about how to use PySimpleGui, although it already has a great Readme, to spread it further and share with everyone. Some of these articles can be found: here, here and here.

Screenshot 1 from Watermarkd's single() function:

Watermarkd_logo

Screenshot 2 from Watermarkd's batch() function:

Watermarkd_logo

Our GUI interface is not as fancy as some of the sophisticated designs here. Nevertheless, it came super handy to get the intended job done in a smooth way for our users.

Finally, a big thank you to the creators and contributors of PySimpleGui and everyone who cared to share their beautiful GUI work here.

Happy and productive coding everyone!
Have a great week,

Holypython Team

@holypython Nice! And congrats!

Some of my favorite utilities that I've written have similarly simple interfaces. The new readme talks about a "GUI Gap". Your program is a great example. If a typical user wanted to add a watermark, and the problem was solved using Python, the potential users would be perhaps limited due to the command line requirement for usage. But adding a GUI, even a simple one, bridges that gap and opens up the program to anyone.

You've got a ton of interesting tutorials as well. PIL is a great library that works really well with PySimpleGUI. Nice work on the tutorials on ways to integrate the two.

@PySimpleGUI Thank you for such a great GUI library, it really did add a new dimension to our work and bridged the gaps. Also thanks for the kind words! 👍

We'll be looking into further synergies with GUI applications such as combining it with Database applications. Seems to be another fantastic match with PySimpleGUI in general.

If you have any suggestions, ideas or synergies that you'd like to explore further with Holypython.com we'd love to hear them any time! 👍

20201011PSGegMultilineColorV05
Python source code here: https://github.com/amantotek/python-hal/releases/tag/v06
Run with: python3 PSGegMultilineColor.py
Demonstrates PySimpleGUI Multiline getting coloured
a) using preset colours for certain character strings/words
b) using tags specifying colours as each line is appended to the Multiline

Thanks for your addition @amantotek.

I see your technique is to directly access the underlying tkinter widget to insert tags. I'm wondering if maybe the color handling code wasn't present when you wrote your code. The cprint and other techniques presented in the Cookbook will do the tag insert for you.

Your example of mixing colored text with plain text would be good to add to the Multiline Demo as I don't think there are any examples of mixing colors on a single line in any of the Demos or the Cookbook. I'll make sure one gets added.

This line:

image

can be created using cprint with end set to '' so that the individual calls to cprint will result in the output being on a single line. The code to produce a similar line of text in a Multiline could be:

        sg.cprint('Logging ', end='')
        sg.cprint('Off ', colors='green on gray', end='')
        sg.cprint(', Internet ', end='')
        sg.cprint('ON', colors=('red', 'yellow'), end='')   # there are 2 formats that can be used for colors (string or tuple)
        sg.cprint(', Alarm ', end='')
        sg.cprint('ON', colors='red on yellow')

It would produce output similar to this:

image

The pattern to follow for individual words using cprint is to call cprint for each portion that has a different color. Each of those cprint calls sets end to '' so that they all result in a single line of output.

One advantage of using cprint is that the code is portable across the PySimpleGUI ports. The same code runs on PySimpleGUIQt and produces the same results. Literally changed only the import statement and got the same output, except running on Qt.

image

Selection_125
I needed a way to quickly subscribe to RSS feeds in my RSS reader, some sites no longer provide RSS feeds, and using RSS Bridge, Tiny Tiny RSS and a shell script, I created an easier way to combine the various strings together.
Then I wanted a GUI instead of having to go to the terminal, went searching and found PySimpleGUI and was quickly able to convert the script and provide a GUI front end.
At the testing stage, I found I right-clicked in the username box and the context menu didn't pop up as expected. So I did a little (well, a lot) of reading and installed pyperclip, added it to my code and now I can cut, copy and paste using the right click.

It's true I didn't need the right click - but it was great to work it out and pull it all together. I've now got a natty little GUI that I can start up, paste in a username, click Subscribe and have it automatically open a new tab in my web browser and subscribe to the feed.

Hey hey, first app all done.
Huge "Thank you" to the whole PySimpleGUI team, you guys are awesome!!

welcome

folderSelect

main

Thank you @alexBoldea !

I love the watermark! I like the theme, but I wasn't able to pick it out from the list. I cheated and sampled the background. To verify it, I switched the test harness's theme with Dark Grey 6, which of course matched.

image

In some ways your program is like the Demo Programs Organizer/Editor/Launcher I posted this week. IT shows 2 folders side by side and enables you to copy item from the left to the right.

Here's the new demo with the color changed to Dark Grey 6.

image

We have a similar overall layout, use vertical separators, manage 2 lists of files, etc.

One next step for me is to add some user settings such as the location for each folder. I'm probably going to sneak theme settings into stuff. I like the watermark so I'll be stealing that, thank you!

Thanks for sharing.

I want to make posts your likes happen as an ongoing thing that'is easy for everyone.

I love the demo copier, it gives me the idea to add on the duplicate finder a window to scan the extensions of all files and have the user add what they want to remove. Glad you liked the watermark!

You've sparked my interest in themes and user settings so I created a new design pattern/demo that shows how to easily add a theme button to switch themes on programs. I'm pushing a more modular demo program design now too with the window creation in one function and the event loop in a main() function. This will solve some problems people are hitting by not having their code inside of a function.

Thanks for the great inspiration. I'm able to learn something new from every user.

Here are screenshots of a reverse polish calculator that uses PySimpleGUI as the front end to a text mode python program. Both the calculator and GUI programs are about 850 lines of code and comments. The combination runs, and looks almost identical, under Linux, MS Windows 10, and MAC OS! In Linux it runs on both intel and arm based systems. The only real problem has been with keyboard input under all of those systems. I have had to create a "key translator" to deal with all of the various key codes returned.

Screenshot from 2020-10-27 11-20-18
Screenshot from 2020-10-27 11-36-25
Screenshot from 2020-10-27 11-37-21
Screenshot from 2020-10-27 11-41-37
Screenshot from 2020-10-27 11-42-05
Screenshot from 2020-10-27 11-42-56