@kcl1s ... Never doubted for a moment you appreciate what we're doing. I didn't do a good job of communicating that I could use a hand in flagging when there are problems, via GitHub issues, and also in finding out the root cause. That's what we're after ultimately... a fix to the problem.
The search bug that happens in Chrome that evidently is back is particularly frustrating. The less time I spend on the current ReadTheDocs site, the better overall. These sceenshots in this issue have been added as a couple of tabs, but I'm otherwise putting all of my efforts into the next-generation docs.
It's the largest and most costly effort in the project's history. A _few_ examples, in addition to a complete overhaul of the format - the other 3 ports have call reference documentation/docstrings the eCookbook is integrated into the documentation as a tab, and significantly more. The search feature is working perfectly. You'll be happy with the results... this I'm sure.
It's great to see more of your work! ![image](https://user-images.githubusercontent.com/46163555/194376336-25908001-2db4-4977-85e2-1b88ed681318.png) Keep building!!
I am a hobbyist learning Python and have been looking at Beautiful Soup and web scraping. Since the search feature is down again for the psg docs (hint hint!) I thought it would be a good bs4 exercise to try scraping all the internal links on pysimplegui.org and make a crude search engine. Not really a great psg project but I thought I would share some shots. Code can be found here https://github.com/kcl1s/python/blob/master/psgSearch.py
@definite-d LOVE IT! Haven't forgotten about your open issues and please be sure and look at the change made to menus recently so your theme changing picks up that change. You have nailed the point about "simple "not being limiting. In the docs I'm working on, I'm describing this "emergent" effect that simplifying has triggered. These user screenshots are an important part of explaining the point. Making operations simple, approachable, and accessible has enabled users to customize applications in ways far beyond what's normally accomplished in Python GUIs. **_The Simple Syntax has resulted in Complex Interfaces._**
@kcl1s You continue to crank our some incredible projects! Thank you for posting them here! They're getting seen by quite a lot of people that use the documentation. People love seeing pictures and what a beautiful one you posted. Simple but beautiful just the same. And **what** it does is incredible!
This is my latest project using PySimpleGUI. I just got a laser engraver and needed a way to convert .jpg clipart to .png and remove the backgrounds without dealing with a graphics program or online converter. I had luck creating a 12 line "proof of concept" script so I decided to use my favorite GUI to make it easy to use. I can remove white or black backgrounds with a slider to give some tolerance. I did a video of the process https://youtu.be/MZuxuoPsHcw I then found a way to do the conversion 100+ times faster with Numpy instead of Python loops so I documented that in this video https://youtu.be/WXISlAzddFA I also put the code on gitHub https://github.com/kcl1s/python/blob/master/TBGpsgNP.py
I'd like to show you my latest attempt at a modern GUI, built with PySimpleGUI, featuring a custom modern HTML-style input element, [rounded buttons](https://github.com/PySimpleGUI/PySimpleGUI/issues/3412), a [custom theme](https://github.com/definite-d/themera) and [real-time theme changing](https://github.com/definite-d/psg_reskinner/).
> Here is the MP4 converted to GIF for the screenshot that @physcofury posted. GIF is required for the screenshot to appear in the screenshots tab of the docs.
@physcofury why didn't you pick something a little more ambitious for your first project? A multi-window point of sale system with an onscreen keyboard? That's really incredible actually!
Here is the MP4 converted to GIF for the screenshot that @physcofury posted. GIF is required for the screenshot to appear in the screenshots tab of the docs.
Here's a screenshot from a Wordle clone I made to learn GUIs. I used PSG after a few failed attempts with other GUI libraries - luckily PSG was far easier to understand and implement. Thank you for building a great product!
It's not common to see screenshots from a Pi. The bonus of it being used to teach students AND having an accompanying YouTube video gets you extra credit!
Been a while since I have posted a project using my favorite GUI.
This is Python on a RPi. I created a stand alone lab project to help students measure the speed of sound using an ultrasonic sensor. I have an explainer video on YT https://youtu.be/uA4RKeCI7r4
The new MSIX version of my application is now in the Microsoft Store! Feel free to check out the first PySimpleGUI program packaged into MSIX 🙂 https://www.microsoft.com/store/apps/9NMFSJB25QJR
> As you can see, I've developed a rather simplistic style prioritizing functionality and simplicity... Maybe not the prettiest of GUIs, but very functional and to-the-point!
You're right in my groove, my way of looking at the world. Sometimes the pretty part gets so in the way that the functional part never happens. Personally, I like software that runs and does the job much more than software that's pretty but only runs in my head, never to be seen by others. An author friend from decades ago used to say that shipping something that's not perfect is a lot better than never shipping something that is perfect.
> > Working on packaging my app into MSIX for Microsoft Store distribution and the results are looking really promising! Just need to fix some working directory related issues.
> > The benefit of packaging into MSIX is seamless installation, updating and uninstallation.
> > 2022-07-06.20-39-16.mp4
> > I will probably publish a tutorial soon on how to package your Python project into MSIX as there's hardly any information about it.
>
> @infinitepower18 That looks _dope_!
>
> I've personally had a lot of issues trying to use **pyinstaller** with several of my applications that utilize **PSG**, _especially_ if they involve multiple other packages; I'll definitely be looking forward to any tutorials you decide to upload!
>
> I really like the easy-looking install/uninstall process and smooth setup that MSIX appears to have.
Pyinstaller has issues related to being falsely detected by antivirus software, which is why I use Nuitka instead. Yes, it may take time to compile the application (takes nearly 10 mins on my laptop) but it's worth it and you won't face any false virus detections.
1. Compile the application using Nuitka, for a general idea of how to do it you can refer to this: https://nuitka.net/doc/user-manual.html#use-case-4-program-distribution
2. Once the application is compiled, the dist folder contains the files that you package for distribution. Create an installer using [Inno Setup](https://jrsoftware.org/isinfo.php)
3. Once you have the installer created, you then create a virtual machine and get all the updates installed. This is important because it's not gonna create the MSIX properly if you run the packaging tool on your main OS, you have to do it on a VM. Also, make sure you created a snapshot of the VM before packaging your app as you will need to revert to it once the process is over.
4. Download [MSIX Packaging Tool](https://apps.microsoft.com/store/detail/msix-packaging-tool/9N5LW3JBCXKF) on the VM and follow the instructions to create a package. For the certificate part follow [these instructions](https://docs.microsoft.com/en-us/windows/msix/package/create-certificate-package-signing#use-new-selfsignedcertificate-to-create-a-certificate)
The generated certificate is mainly for testing purposes. Once it's uploaded to the Microsoft Store it will sign it for you and users can download it from Microsoft Store without any issue. Yes, sideloading is possible but it will need a trusted certificate, I think MS Store will let you download a signed version afterwards that will install fine but will need to see once my app is approved.
If I recall I didn't have to make any changes to my code for Nuitka to compile properly but for MSIX I did face issues related to working directory due to the way they're run. So it depends on how your app works and you may need to refer to Microsoft docs. In the end I could get my app to run properly but it took some time to figure things out.
> Working on packaging my app into MSIX for Microsoft Store distribution and the results are looking really promising! Just need to fix some working directory related issues.
>
> The benefit of packaging into MSIX is seamless installation, updating and uninstallation.
>
> 2022-07-06.20-39-16.mp4
> I will probably publish a tutorial soon on how to package your Python project into MSIX as there's hardly any information about it.
I've personally had a lot of issues trying to use **pyinstaller** with several of my applications that utilize **PSG**, _especially_ if they involve multiple other packages; I'll definitely be looking forward to any tutorials you decide to upload!
Working on packaging my app into MSIX for Microsoft Store distribution and the results are looking really promising! Just need to fix some working directory related issues.
As you can see, I've developed a rather simplistic style prioritizing functionality and simplicity... Maybe not the _prettiest_ of GUIs, but very functional and to-the-point!
> Thank you SO much for posting the screenshots @jerrylususu !
>
> Your code inspired the new section that I just created in the eCookbook!
>
> Here's the page with your code. We still need to solve the character set problem.... and I definitely want to get your information into the header of the code.
Good to know! The problem of not display Chinese characters is probably caused by missing fonts. To workaround this and show the usefulness of my snippet, I added a French selection which seems to work in the online environment. Hope that helps!
Here's the page with your code. We still need to solve the character set problem.... and I definitely want to get your information into the header of the code.
Simple i18n technique for PySimpleGUI programs: Show a language selection window when program starts, then load the translated strings in the selected language.
Hi @ArchKubi .... I suppose you could call this little fella our "mascot". I had a set of emoji's created a while back with the PySimpleGUI logo on the chest so I can use them within PySimpleGUI for testing, error messages, etc. They've added some personality to the project.
Wow I did not expected a core dev to reply to my post! Thank you so much @PySimpleGUI! You made my day after I just worked through a whole day in implementing all the functionalities in Extracting Scripts Tab
The app is sort of complete now but I haven't tested it on Windows as I daily drive Linux so I need to make sure it works there as most of Camp Buddy players are Windows users 😭
And I did what you said about the screenshots, I modified a great looking readme template and I put the Extract Assets tab screenshot in there, thanks for the tip by the way!
Keep it up dev!!! and code contributors ofc, who ever you are, with what you're doing with PySimpleGUI. You're making the lives of newbie GUI devs easy with it!
Honestly I've never had so much fun making a GUI application than this in the span of two weeks. Everything was straightforward to implement and everything was in the documentation too. Might be one of the best out there!
You (and other devs) might have possibly thought of every situation a developer might want to implement their app because there is a lot of examples 😭 and I just love it 💕
Especially the cookbook, that's where I learned how to combine window.long_operation_operation and window.write_event_value to make a responsive GUI which by the way I haven't even done in my previous experience with Visual C#, it was a new territory for me but those two methods made it easy to implement a multi-threaded GUI.
A surprising amount of the code still works. The unpacking of the values dictionary doesn't because of how the Browse buttons work now. Windows were not called `Window`.... they were `FlexForm` back then. You can still use the `FlexForm` name as PySimpleGUI tries to be backward compatible as much as possible. The overall PySimpleGUI look of the layout and the names were really close to what's used today.
Love ![image](https://user-images.githubusercontent.com/46163555/173205513-10b9aa67-c9a2-43d7-883e-3db889381ace.png) seeing all those screenshots! If you have a moment, can you perhaps add them to your readme? You can use the links already created in this GitHub Issue. You just need to copy and paste the lines that look like this:
By the way, I finally wisened up that since there are developers using threading in PySimpleGUI that understands the concept of threading, it may be clearer to use the word "thread".... so.... I created an alias `start_thread` that is the same as `perform_long_operation`.
Thank you for taking the time to come share your creation! These stories, screenshots, and hearing what you're all making, is **_incredibly motivating_**. It's what keeps me working hard on PySimpleGUI. It results in me wanting to make PySimpleGUI better
I'm currently writing a tool of some sort for a Visual Novel game. It mainly targets those who want to make a python chat bot that speaks exactly like the characters from the Visual Novel.
The GUI doesn't become unresponsive thanks to perform_long_operation. And the write_event_value made it easy to pass the current file that is being extracted, as well as the current progress of the extraction from a separate python program:
This is the exact problem with using language features that are specific to a version of Python. It causes one to ponder "what % of the Python community am I willing to leave behind".
It changes day to day. Opinions vary, but I've always felt like users are more likely to pass on trying a package or program than they are to upgrade their Python environment in order to run it.
I've mentioned this a few times over the years. I chose to support 3.4+ to get the most users possible. For Demo Programs, I'm a bit more open to 3.6+ for the Demo Programs and other repos, but don't go any higher than that for the same reason of wanting a big tent.
`match` was new to me for this project - quite a nice addition to the language but being new its a bit of a pain when it comes to backwards compatibility.
I haven't made this available publicly, but I put a hacked up version of your code up on Trinket so a few friends can play with it without having to install Python, PySimpleGUI, etc.. Sorry that I de-3.10'd the code by removing the match.. .but I needed to run the code in a lower version of Python.
@PySimpleGUI I have just created a repo for the 3D viewer. I have also added polygon rendering. This is all driven using just maths and the Graph element.
I have written instructions on how to compile it in the project's readme. These instructions should probably work for any PySimpleGUI program. It can take a few mins depending on the speed of your computer, but it works flawlessly and I haven't faced any issues with it as of now. Definitely would recommend using it to convert their Python programs to .exe files. I think it can also convert to Mac .dmg too.
You shouldn't need to install it, its just a python script that needs to be imported. I included both scripts in the post above but the division between the two scripts isnt very clear!
It's really great for these Tableau-style grids of graphs. For this COVID tracker, I used a linechart (Graph) with a Gauge (Graph) and simply repeated them.
self.focal_point = (focal_distance, 0, 0) # Focus point must on X axis due to laziness (avoids a ton of maths).
self.projection_plane_anchor = (projection_plane_distance, 0, 0) # Projection plane centerpoint. (we will only use the x coord since this must be a plane parallel to YZ)
Fixed things up and made some improvements so that it's more flexible when changes are made. It's been a while since it was updated. This one goes back to the early days.
Not only that, but the application is now compiled using Nuitka, creating an executable file for better integration with the Windows OS. The big advantage of using Nuitka over something like Pyinstaller is that it won't be falsely flagged by antivirus vendors, which is a problem with Pyinstaller and hence why I avoided using it. This also opens up the possibility of creating a packaged MSIX application in the future, by converting my exe file using a program like MSIX Packaging Tool. Unfortunately I have not been able to get it to work properly yet and will focus on the stability of my application for now.
Also, this seems to be a PySimpleGUI specific thing (I have a very small Tkinter based project and I don't face this issue with it) but if I pin the installed application (I package the compiled files using Inno Setup) on the Start Menu to the taskbar, and then click on the pinned application, it adds a duplicate on the taskbar which is not pinned. If you pin that duplicate and remove the previous one, then it will work the way you expect. Attaching video below:
One of the points of emphasis in the Udemy course's lesson on the Graph element is that it's a "Gateway Element". From it you can make all kinds of custom elements. There's an enhancement that I have about 2/3 done called PySimpleGUI+ that is a more formal way of creating these custom elements.
The Graph Element demo program Demo_Graph_Drawing_And_Dragging_Figures_2_Windows.py uses PIL to save to the file to the disk. The feature that was added to PySimpleGUI a couple of releases ago to take "Window Snapshot" uses PIL. I don't require PIL be installed in order to use PySimpleGUI, but I do require it to be installed should you want to use this snapshot feature/
I quite like the Graph element - being able to position your 0, 0 point is a really understated feature for making clear code! Being able to return the elements to manipulate them also presents some interesting opportunities. One of the main reasons I was using PIL is that I can write out the generated image to disk for printing / emailing etc. Is that possible with the graph element here?
@EdwardChamberlain take a look at the posts by @neovich . He did a VU meter and custom sliders that are really beautiful and 100% done with pure PySimpleGUI. No PIL required.
While you're thinking along this custom-element kind of direction, keep in mind that the Graph element has the same kind of drawing primitives you're using in PIL... without needing to use PIL.
There's a nice slider posted quite some time back that uses a Graph element as well. It would be interesting to see if support for both PIL and the Graph element could be used.
Just some proof of concept! Using Pillow to generate a line that can be updated in realtime as a response to the slider input. Im hoping to expand this to some more complex interactive graphics within pysimplegui using pillow as the 'renderer'.
Please don't add a post to the Announcements just yet. One of your PySimpleGUI users in Germany is testing in a new environment and found several rough edges. I'd like to wait until I resolve those before talking to a wider audience.
Update 2 June 3:06 PM EDT. I have corrected the rough edges mentioned above but I'd still like to limit testing to just a few users. The code at GitHub and the tar file at my site include the corrections and a little wordsmithing on the documentation.
This is indeed an ideal place to share that you're opening up your application for testing! I love it! Thank you for making your post. The WIKI is another location that you can post in, but it gets very little traffic.
Congratulations on getting to this point with "Birdland Musician's Assistant". As a piano player (I don't dare go so far as to use the term "musician"), I was immediately captivated by your program. Very exciting to see music-related applications being built.
I know that this is an issue for screenshots but perhaps a link to the site of a project using PySimpleGUI would also be welcome I believe that "Birdland Musician's Assistant" is ready for testing from a few 'friendly' users. If, in addition to being a PySimpleGUI user, you are also a musician, especially if you have a collection of PDF fakebooks, then you might find this interesting. And the person with the id of 'PySimpleGUI' specifically asked to see this several weeks ago.
It's not how I want the project to be structured. The discussion feature isn't enabled on GitHub and the PySimpleGUI social media accounts are shut down for similar reasons.
I'd also like to have a numbered line within a multiline. Looked for solutions in the past but came up with nothing. If you find any let me know - I'll also start looking at it again.
Anyone with Windows 11 can try out my program by downloading from either [GitHub releases](https://github.com/infinitepower18/WSA-Sideloader/releases) or [Microsoft Store](https://apps.microsoft.com/store/detail/wsa-sideloader/XP8K140DLVSC0L). More updates are coming over the next few months!
Per request from PySimpleGUI here is a screenshot of AWS Cloudfront utility I created using PySimpleGUI. It allows you to delete, invalidate, enable or disable a cloudfront distribution.
Recently created a video-to-audio file converter also capable of downloading videos, or _just the audio_ from said videos, from YouTube. I call it _**V2Mp3**_ (Video to Mp3).
This is just the initial release version - I plan to add some more features such as a button to allow choosing the directory to save downloaded/converted files.
This is a tool to convert it to an image format, that I have developed to suit small microcontrollers better - check if out if you're curious! https://github.com/gfcwfzkm/PIF-Image-Format
@eliffile as always, you're quite welcome. I hope to have The PySimpleGUI Catalog project up and running in the coming weeks so that posting screenshots will be built-in and trivial to share. I usually drag and drop or copy and paste them into the GitHub comment.
Hmmmmm..... I'll do The Catalog project in multiple steps so that getting a screenshot taken and posted here, in this GitHub issue is easy. That'll be a way to get started and be useful much sooner than waiting for the entire project to complete. I'll make `psgscreenshot` place the image of your window on the clipboard so that tit can be pasted into the Issue. I recall learning how tricky it is to place images on the clipboard last year.
Thank you, @PySimpleGUI . It really works well. I have updated the picture you your site (#10) but the links no longer work. Github and I don't seem to get along. I just don't get my head around it. Not a complaint. Thanks for the wonderful library that you have created. The possibilities are endless.
Here's an example of a window that has inputs with labels that are varying lengths. By adding a `Push` onto the front of rows, it right justifies ("Pushes") everything on that row.
@NFadhlurrahman I really like what you've made and I'm learning a lot looking through your code. I'm trying to make it 3.6 compatible as the `run` call isn't available in 3.6. There are some tricks you did that I'm studying, copying learning from. I need to make sure there are clear examples in the Demo Programs that show how to get results back from the `execute_command_subprocess` call.
The `start_thread` is simply an alias for `perform_long_operation` that I recently added so that it's clear when used in programs like yours that are sophisticated and thus more clarity about what's going on under the hood is helpful.
SO many awesome posts! @Zilversmit , @infinitepower18 , @resnbl thank you for taking the time to share what you've made and for the kind messages. PySimpleGUI users have been so encouraging. It really helps and is greatly appreciated.
This program includes animated images (including "buttons") and playing sound clips. It does require the installation of the VLC Media Player app, as well as `pillow` and `python-vlc` packages.
My application is WSA Sideloader, which can sideload Android apps on Windows Subsystem for Android on Windows 11 with minimal effort. Thanks to PySimpleGUI and tools like pynsist which helps with distributing the program, I have been easily able to code it based on what I know about Python so far.
![Snap_Thursday, 24 February 2022_14h53m2s_002_Click to run](https://user-images.githubusercontent.com/98189612/155906408-97e2ec6d-80a0-47c5-b88c-b04a7ddaaff3.png)
![Snap_Friday, 25 February 2022_19h23m21s_003_Enter an SQL 'SELECT' command', 'Enter '](https://user-images.githubusercontent.com/98189612/155906363-09133513-808d-4b16-8bdc-ae4b6b2ad2bf.png)
Very nice Marteen! I mentioned Tabs and less than a week later I see a new GUI from you with Tabs integrated into your application. You're absolutely right..... tabs are quite useful when you've got limited real estate. I've used them where the entire window is taken up by tabs so that switching to a new tab is like switching to an entirely different window, as well as smaller portions of the window, like you've done in your latest version.
I've been pondering your placement controls using sliders. Short of using a Graph element so that you're dragging items around visually with the mouse, I am not sure of a better technique than what you've implemented. A slider gives you better fine-granularity controls than using just the mouse. With just a mouse (dragging images around), it's hard to "nudge" something a few pixels in one direction or another.
There may be a hybrid kind of interface possible where an item to change is selected and then a pair of sliders are used to control the selection. It's multiple steps though where your controls are a single-step... just move a slider and the right item moves. Arrow keys are another possibility but again, there's a "select" the thing to change step involved.
A variation on the previous version of the Postcard Maker this time using Tabs which are very useful when dealing with the limited real estate of a computer screen. Amazing library to work with. Thanks for all the hard work.
You may like Tabs in the future should you have a lot of settings that you can to be highly accessible, but yet don't need to be present all the time or visible while you're working on the card. Just a thought.... not that I see a use at this point, but thought I would toss it out there as something for you to keep an eye out for a use of.
Very different color scheme this time and it too is a really well-done palette like your last one. Impressive is an understatement. It's nice to see someone with your artistic skills using PySimpleGUI. I'm envious... keep posting what you make!
I made the stamps with photos of my grandkids in Photoshop then turned them into buttons. Picking a stamp places it on the Card Base. The photo and writings follow when I click MakeCard. Positions are adjusted with the sliders. Just having a ton of fun. Thank you. I have Tim Tams - they go well with coffee.
Love it William ( @WAUthethird )! ![image](https://user-images.githubusercontent.com/46163555/154317948-4844f294-6800-4f6a-81b7-f63709db5de1.png) I like AI GUIs, especially with being able to visually adjust parameters like you've got with the sliders. I also used sliders for Threshold and Confidence in the YOLO demo. Being able to change in real time or without having to restart the entire application is a real timesaver and advantage of using a GUI. I like seeing 3 windows in your one application. Very nice!
I've created a program that utilizes text generation AI to make text conversion (such as converting text between first person and second person) fast and easy. The initial window asks what AI model you'd like and determines whether your computer can run it. If you have a GPU, you're given more options to play with.
<imgwidth="609"alt="Screen Shot 2022-02-15 at 9 21 58 PM"src="https://user-images.githubusercontent.com/17788745/154195675-56df8b5b-9d9b-47ce-8319-367214779178.png">
After choosing a model, you're opened up to this screen. I've filled out the table with a few examples.
<imgwidth="1056"alt="Screen Shot 2022-02-15 at 9 25 54 PM"src="https://user-images.githubusercontent.com/17788745/154196017-21473700-fff1-404c-bd8d-acd221cb19f3.png">
I can press the '(Re)generate output' button to have the text generation AI create a response that matches the ones in its memory, which I can then add to the table. The more you have in the table, the more you get better responses!
Since the AI model has a limited amount of space in its memory, called "tokens", (somewhat analogous to characters) I had to create a way to keep track of them and let the user activate (put in memory) and deactivate (remove from memory) them. Since I've optimized it for fast work, all entries by default are activated, and when the memory limit is hit, the top rows in the table that are not permanently activated begin to be deactivated to make space. All of this is helpfully color-coded and updates a number of parameters on the fly. You can also edit entries (which disables most of the program until editing is complete) and do bulk operations - selecting multiple rows at a time and hitting something like 'activate' works seamlessly.
<imgwidth="1056"alt="Screen Shot 2022-02-15 at 9 32 09 PM"src="https://user-images.githubusercontent.com/17788745/154196667-8556fa54-d503-4db1-8103-2997fe499349.png">
I've also made a settings screen with good defaults and highly configurable parameters:
<imgwidth="754"alt="Screen Shot 2022-02-15 at 9 33 52 PM"src="https://user-images.githubusercontent.com/17788745/154196867-73f094b9-2755-4d0f-83dd-ab124693402f.png">
I'm really happy I used PySimpleGUI for this project. I definitely ended up using the table element in some really interesting ways, and I learned a ton about Python/Tkinter GUI management and creation.
The site where I to sell my artworks don't features a multiple images uploading and it's a slow process to upload many variants or same category images
Threading & subprocessing has/was/is/will be a challenge to continue to work into PySimpleGUI in a simple and effective manner. The `Window.write_event_value` addition, at the very least, put an end to polling which means less latency, less CPU time, more responsive and clearer designs. The Exec SDK has helped simplify subprocessing (in my opinion, or for me it has)
I'm currently working on a POD website uploader, good for niches and when uploading same type of content in dimensions and "category" and oh boy, it was a journey, but I am 90% done!
Every task gets in a queue that will show the status, and it's sent to a selenium instance, that can be paused, resumed or stopped in any moment (obv any is tied to waiting for line of code to be completed)
But I learned a lot of new things while working at this, and threading/multiprocessing is a must have knowledge when GUIs are used. This way, your GUIs will never be unresponsive!
Click the link in this message that you get and you'll see that your email replies have a lot of trash that shows up and the images (if you included any) will not be visible. You must use the GitHub site to reply to Issues if you want to avoid the trash and especially if you want any images to show up.
I do see you've uploaded your project to GitHub! Very nice! You're doing great! Just be sure to use the GitHub site to reply to comments that you see arrive in email.
@eliffile You must come back to GitHub in order to post images. Replying to an email will not include them in the GitHub issue you're replying to. If you follow the link at the bottom, then you can see what your email replies look like. I suggest **_always_** clicking the link at the bottom of the email if you are going to reply so that you can paste images in and the other "junk" doesn't get posted that emails often include.
Anytime you get an email from GitHub about an issue, and you want to "reply", click this link at the bottom of the email so that you are replying on the GitHub site itself:
BTW - you're doing **_GREAT_**... you're a **genius** if you've not been told (I have a feeling you have). You're WAY ahead of schedule in your learning. I don't believe you are struggling in the least bit. You're thriving. I find programming difficult, every day. As you pointed out, reading other people's code is challenging. It's one of the most difficult things you can do in programming.
Hi Maarten! It was your GUI that finally made the connection in my head that I've been searching for. I've noted a phenomenon over the past 3 years about PySimpleGUI and users that have not made GUIs before, but from seemingly nowhere arrive, as you have, with a massively complex GUI that's mindblowing in the genius of it all. The way you used sliders for positioning was so clever.
What I've noticed is that the PySimpleGUI building blocks are simple, easy to understand, and as you're finding with some practice, simple to assemble. With enough time and patience large, complex creations are not only possible, but I've seen them happen numerous times. Your GUI in particular made the connection.
Minecraft is the analogy I've been searching for. I kept thinking "Legos" for all this time, but that's a physical not a computing world concept. I've been missing the computer model and Minecraft is that model.
@eliffile wow a beautiful message to wake to and begin the day! I'm thrilled it's the first thing I read. Ever since seeing your post the other day your story has been on my mind and how remarkable it is that you've built this incredibly detailed application. I've never seen a beginner at programming do something like this right out of the gates! Honestly, never. Please keep building! Your pace of learning is genius. Thank you so much for sharing your work and your story. I'm inspired!
Since I retired (68y) I found it necessary to combat my flailing memory. I decided to take up learning pythom but it was rather meaningless since I hate doing uninteresting exercises. I discovered PySimpleGUI. I found it difficult at first until I read Mike's note to design the window line by line and it all fell into place for me. I had a real project since I wanted to send cards to family and especially my grandkids. Now comes the real crunch. I have to learn python but I am sorting it out as I go
Well, here is the small project I'm working on with PySimpleGUI. There is a small Tennis Club that wanted to stop using excel sheets to track reservations and the small shop sells. The software uses 2 screens. The main screen where you track all the sales and the second screen where you book the reservations. Note: everything is in Spanish
In the second screen you keep track of all the free hour times. Who book it, the state (canceled, played, waiting confirmation, rainny), if there is more than one player and the type of match (teacher, normal reservation, ...). In the gray columns you have recurrent reservations so you dont have to add them manually.
You can add new productos with their cost and sell price (like balls and fresh water) and another section where you can load products you bought from Wallmart or any other place
On the main screen, when the people finish their match, you click their reservation and add all the items they bought to get the total. Click on the small list in the left and select the products
There are several other sections, to load payments, make backup, add new players, edit, add notes and more. Overall PySimpleGUI is a fking awesome library. I wish I could make a donation but I'm getting paid $2.5/h, hopefully one day (3rd world problems :P)
the checkbox indicators are very useful, and we take it a step further in testing. While that screen above produces logic driven status indicators, our other process windows take a different approach....
Although logic controls when devices are turned on/off, the status indicators are not driven by the controlling logic - instead the status indicators are directly tied to IO pin status for the pin controlling the relay as an example. This means that even if the control logic was 'supposed' to do X, the indicators show the actual physical status of the relay. So if there is a logic conflict it is easy to see an error during testing.
There will be more examples. We are still learning / imagining what is possible. One suggestion for pysimplegui is to implement text alignment on buttons / radio buttons. We will do the tkinter calls to achieve this now, but it could be much easier.........
I am hopeful the vast majority of our pysimplegui work will be completed within 4 - 6 weeks, I'd be more than happy to put a pack of images together that you could use for whatever promotional use that benefits pysimplegui - if it helps.
It looks like maybe you used checkboxes for the LED displays for the valve tests. If so, I think that's a first. I've never used checkboxes to display status like that.... but I will now...
I'm really impressed that your team did so well with this when you started being so resource bound. Those are non-trivial challenges. Hardware, software, GUI, realtime, .... you pretty much checked every box you could have. THIS... this right here is what gets me up and going every day.
this is 99% complete, some buttons to be added. Shows the ability of pysimplegui. All of the layout is done in about 120 code lines, without compressing lines into each other.
The bottom 6 charts scroll to the left, like an oscilloscope. Where there are 3 different legend colors the charts are auto ranging in the y scale for the color band. This allows us to show small values in detail, while still being to draw biy y numbers on the same chart.
Games are potentially a new frontier for PySimpleGUI. Nothing in particular has changed to make it any more or less easy to write a game using PySimpleGUI that I can think of. But I am seeing more and more games starting to show up.
Your cards are beautiful. I've never seen any like them before. Love the color scheme. Looks fantastic and posting a GIF really makes the window come to life.
As I ponder the "Gallery" feature, I'm feeling the urge to include the ability to not just take a static screenshot, but to record a GIF if possible. That may prove to be too much... we'll see when I get further down the road. Thanks for the inspiration! What a great way to start a Monday!
@vohe Nice! I was going to comment over the weekend that the link provided is giving a 404 error, but waited, and glad I did since it now works, wish a screenshot and everything! NICELY DONE!
Hi @WaterReNu !! Definitely don't delete anything! And thank you for posting the screenshot and images! I'm so happy things are going in a positive direction for your team.
You've got a really clean-looking product. Certainly doesn't look like a prototype. Really happy things took a turn for the better! Thank you for getting the week off to a fantastic start. Nothing like a success story to get the ball rolling in a positive direction.
Hi Mike, looks like we have solved our issues - it was related to core over utlization, so we had to go down the path of asynchronous threading, plus a lot better non blocking handling of timing loops.
I thought i'd add these photos for the raspberry pi guys reading this. 40 relays, 4 pwm, 8 interrupt pulse counters, 16 analog inputs, 16 digital inputs. PI 3 /3b running at 15% cpu average across cores, refined sensor value updates 10 per second, from raw measurements of 2,000 per second, across all the inputs.
Let me know (or delete if you think this post is not appropriate). I know a lot of PI people, and a substantial majority dont know about python/pysimplegui/pi.
And for the PI people, yes that is our own board design. We packed in as much as we could in the available space. Both the front and motherboards are double sided, SMT for IC's and passives etc, and we pick and place and bake in house.
@DeusAres beautiful work! I love the custom highlighting you added. It added a level of sophistication and attractiveness that is not typical. Nice job!
@shullaw tip for ya in case you've not discover it.... if you use `set_options` to set the icon for your application, rather than specifying in the `Window` creation, then ALL windows, including popups, will use this icon. I recommend using a Base64 encoded PNG files for this icon as it works across all Operating systems when using base64 strings. Glad you got it sorted out!
@tostos5963 NICE GIF! ShareX is what I use to make GIFs for readmes, etc, because they are tiny somehow. Brilliant idea to show a GIF for your game.... nice work indeed!
I guess I was incorrect! It does appear in the task bar. I do remember Windows initially not showing, but I think that is a Windows specific problem with storing an icon cache.
To answer your question about icons in your EXE file, take a look at the `psgcompiler` project. It shows where you can put the icon file so that the EXE has it. The icon on the taskbar should match the windows already though. hmmmm... feel free to open an issue.
I also recently stumbled onto another game that @jason990420 wrote a long time ago but I don't think it's been posted here anywhere. I'm seeing more and more games written with PySimpleGUI and they're really well done! I recall Jason being the first to published a real game... it was a Klondike Solitaire game, it came from nowhere and was shocking to see as he extended PySimpleGUI considerably in order to write it. Card animations, etc, had never been done in PySimpleGUI before and I couldn't believe what I was seeing.
A data retrieval application I've been working on. Inserts data into an excel template. The (custom) buttons react on hover and console output is routed to the multiline object. Used the PSG multithread method. Comes out to 48MB once packaged with `pyinstaller`. Only thing that I really would like to fix is the actual text in the multiline to expand on event and the icon on the task bar to be my .ico file (probably a Windows issue).
Thanks! Got the inspiration from KeepassXC and also QJackCtl I think. The latter uses images but that doesn't work (yet?) in PySimpleGuiQt. Keep up the amazing work!
I like that you used the Tab title to show status. I've not seen that done.... anywhere that comes to mind, forgetting PySimpleGUI. Thank you for teaching me another trick/technique that can be used in any implementation. Simply had never come to mind as something that could be done.
> @Cornbrother .... I LOVE those fonts!! And I've never seen someone make a Frame Title like that. It's a thrill (I'm serious, it's a thrill) to learn from PySimpleGUI users ways PySimpleGUI can be used. Thank you for posting a screenshot!!
yeah it was something I kinda visualised in my head to spice things up a bit and I thought it worked out. It would be neat if you could place multiple titles within a frame so that you could create either vertical row labels, or do more complex versions of this kind of detailing.
@Cornbrother .... I LOVE those fonts!! And I've never seen someone make a Frame Title like that. It's a thrill (I'm serious, it's a thrill) to learn from PySimpleGUI users ways PySimpleGUI can be used. Thank you for posting a screenshot!!
Thanks for this library and all the best for 2022! [rtcqs](https://github.com/autostatic/rtcqs) is using PySimpleGUIQt for the GUI to show the results of the checks.
I haven't found anything that runs on my iPad. I've got a Chromebook that won't install the PyDroid3 security check that would enable the pro features so even Android is far from perfect. Hoping to get a native APK solution down the road. It's the next big step for PySimpleGUI.
yes @PySimpleGUI, stunning and crazy. Then 3 days later I found out that iOS doesn't even have python. And if you somehow install it, there is no tkinter. Very walled. I find that hard to believe. Is there a way to cope with that?
Yea, PyDriod3 rocks! I don't have many demos for it posted under the [PyDroid3 demos](https://github.com/PySimpleGUI/PySimpleGUI/tree/master/DemoPrograms/PyDroid3) and was STUNNED just as you were when things required zero changes. OpenCV's camera worked on my phone just like my PC. CRAZY!
@pamoroso thanks! Manually copied the files over. Didn't check whether git was there. I open the main python file in Pydroid3 (10$ or free with ads) and run it. Need to install needed modules via pip before, but so far no issues, even cv2, numpy etc is there. You may need to set PYTHONPATH etc in the code before importing any modules as the filesystem is different.
Then some more font sizes need to be changed. That was all.
I was amazed to find out, that even an aged tablet running _Android 5_ runs the app fine. So happy to save another unsupported piece of electro-junk from the mountain of eternal scrap.
wow @PySimpleGUI , you amaze me. As you say, all are standard elements stripped of their decorations. I added exponential scales to the sliders, so they have more room in the lower ranges. What really hooked me, is that it just looks the same on Android and works out of the box. Totally amazing!! Well done @PySimpleGUI.
I assumed when I first saw it that you made your own sliders, much like shown in another screenshot above. It may be worth me looking into adding more of the Graph Element based elements in the future (the PySimpleGUI+ project that has the Dial element).
Thank you for taking the time to post it here. It's been super-motivating to see what everyone is making and this past week the outpouring of support has been incredible.... overwhelmingly joyful messages that have made getting the Udemy course's final days of creation go by so much more pleasant.
I think this window shows just how not-ugly tkinter can be. Yes, it takes work. Yes, it takes a good design. But that's the difference between a good interface and a truly GREAT one!
Simple GUI for using wget to download individual web pages or spider whole web sites. Use with caution against other people's servers - play nicely. Someone asked if I could archive 3400 web pages at work the other day. I used CLI wget but wished I had this.
GUI for the xkcd_password module (https://github.com/redacted/XKCD-password-generator).
This code reaches through the chain link fence around PySimpleGUI and does some unpleasant things... I can't help thinking that there might be a better way of doing it but I couldn't find one.
> I would like to point out that @andrewmk went from never hearing of PySimpleGUI, from starting from scratch to being DONE in 3 days. That's an incredible achievement! AND he wrote a nice piece of code I'm turning into a Recipe and a Demo Program too! AND it involved multiprocessing and multithreading. That's brain-surgery level stuff.
I would like to point out that @andrewmk went from never hearing of PySimpleGUI, from starting from scratch to being DONE in 3 days. That's an incredible achievement! AND he wrote a nice piece of code I'm turning into a Recipe and a Demo Program too! AND it involved multiprocessing and multithreading. That's brain-surgery level stuff.
Major accomplishment stuff in a short period of time. For seasoned developers, I think this is tremendous "fun". Being able to do something trivially that used to be tedious is fun, enjoyable.
A utility to remotely administer websites by running commands over SSH, and generate templated text from a structured input form. I'll no doubt be adding more functionality to this as we come up with new ideas.
Sorry, now I have uploaded it into my repo. Hope that it can be accessed.
(If someone would use it, some documentation can be useful - but until now I didn't write anything...)
________________________________
Feladó: PySimpleGUI ***@***.***>
Elküldve: 2021. november 23., kedd 18:41
Címzett: PySimpleGUI/PySimpleGUI ***@***.***>
Másolatot kap: Frigyes Gábor ***@***.***>; Mention ***@***.***>
Tárgy: Re: [PySimpleGUI/PySimpleGUI] Post your screen shots here! (#10)
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Your attachment didn't come through because you're replying to a GitHub email. It'll post the text here in the issue but won't include any attachments. You'll have to follow the link at the bottom of the email and post the code in the issue, or post it in a GitHub repo or a Gist. I'm CERTAINLY interested and I'm sure other users would be too!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<https://github.com/PySimpleGUI/PySimpleGUI/issues/10#issuecomment-976917464>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ASZLOLNXQM3VX5NXQPER4PTUNPG5PANCNFSM4FLP3TBQ>.
Triage notifications on the go with GitHub Mobile for iOS<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675> or Android<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
FELHÍVÁS AZ ÜZENET BIZALMAS JELLEGÉRE
Ez az elektronikus levél, s bármely melléklete bizalmas és/vagy jogilag védett információkat tartalmazhat, és kizárólag a címzettnek szól. Amennyiben Ön tévedésből kapta meg az elektronikus levelet, kérjük, haladéktalanul értesítse erről a feladót és az üzenetet, valamint annak minden másolatát azonnal törölje rendszeréből. Amennyiben Ön tévedésből kapta meg ezt a levelet, annak engedély nélküli másolása, sokszorosítása, módosítása, közzététele, terjesztése, és nyilvánosságra hozatala szigorúan tiltott.
CONFIDENTIAL INFORMATION
This e-mail and any attachment may contain confidential and/or privileged information and is intended exclusively for the addressee. If you are not the intended recipient, please notify the sender immediately and delete this e-mail and any copies of it from your system. If you have received this email in error, any form of copying, dissemination, modification, disclosure, distribution and/or publication of this e-mail message without preliminary permission is strictly prohibited.
Your attachment didn't come through because you're replying to a GitHub email. It'll post the text here in the issue but won't include any attachments. You'll have to follow the link at the bottom of the email and post the code in the issue, or post it in a GitHub repo or a Gist. I'm CERTAINLY interested and I'm **sure** other users would be too!
I really appreciate the concept and amazing work behind PySimpleGUI.
Yes, all the graphs (even the marker on the Line chart) are PySimpleGUI, so this is not my work but yours. :)
Just some tkinter "hacking" is added where it is can't be avoiding.
All the charts are a bit interactive, that's why I didn't want to use another existing lib.
(It's disadvantage is the too long source, all the classes are 200-250 lines.)
I have attached the code with a little test program if you are interested.
________________________________
Feladó: PySimpleGUI ***@***.***>
Elküldve: 2021. november 23., kedd 16:29
Címzett: PySimpleGUI/PySimpleGUI ***@***.***>
Másolatot kap: Frigyes Gábor ***@***.***>; Mention ***@***.***>
Tárgy: Re: [PySimpleGUI/PySimpleGUI] Post your screen shots here! (#10)
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
I LOVE what you did with the Graph Element too!
I just finished recording that lesson and you've shown exactly what I was explaining in that lesson... that the Graph Element is a "Gateway Element"... you can make new elements, new types of graphs, it's a blank canvas ready to be painted.... I really like that Donut Chart. It's incredible how you've got a piece that's selected and pulled out to show it.
Absolutely 💗 what you're making!
Are all of your Graphs from PySimpleGUI??? Even the one with the marker?
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<https://github.com/PySimpleGUI/PySimpleGUI/issues/10#issuecomment-976717116>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ASZLOLP3QG4SC3C2POYTUXLUNOXMDANCNFSM4FLP3TBQ>.
Triage notifications on the go with GitHub Mobile for iOS<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675> or Android<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
FELHÍVÁS AZ ÜZENET BIZALMAS JELLEGÉRE
Ez az elektronikus levél, s bármely melléklete bizalmas és/vagy jogilag védett információkat tartalmazhat, és kizárólag a címzettnek szól. Amennyiben Ön tévedésből kapta meg az elektronikus levelet, kérjük, haladéktalanul értesítse erről a feladót és az üzenetet, valamint annak minden másolatát azonnal törölje rendszeréből. Amennyiben Ön tévedésből kapta meg ezt a levelet, annak engedély nélküli másolása, sokszorosítása, módosítása, közzététele, terjesztése, és nyilvánosságra hozatala szigorúan tiltott.
CONFIDENTIAL INFORMATION
This e-mail and any attachment may contain confidential and/or privileged information and is intended exclusively for the addressee. If you are not the intended recipient, please notify the sender immediately and delete this e-mail and any copies of it from your system. If you have received this email in error, any form of copying, dissemination, modification, disclosure, distribution and/or publication of this e-mail message without preliminary permission is strictly prohibited.
I just finished recording that lesson and you've shown exactly what I was explaining in that lesson... that the Graph Element is a "Gateway Element"... you can make new elements, new types of graphs, it's a blank canvas ready to be painted.... I really like that Donut Chart. It's incredible how you've got a piece that's selected and pulled out to show it.
Absolutely 💗 what you're making!
Are **all of your Graphs from PySimpleGUI???** Even the one with the marker?
@frici11 you've come out of nowhere with this! I don't see any issues where you've asked a question. This is a really incredible piece of work! Oh, AND you're multi-lingual on top of it so you're reading English documentation, and writing for use in another language. WAY over my head in skills. Wow... just.... wow.... Going to take it all in and enjoy what you've created. There's so much here to enjoy!
I'm thrilled you've made something so useful to you and inspirational to me and others!
I have just finished an app in PySimpleGUI. (portfolio evaluation with analyzing cash flows, calculating yield rates, currency effects etc.)
Although they are not in english (sorry), but I share 3 screens, with two comments:
1.) The charts you can see are also in PSG. I made three classes upon sg.Graph: column, line, pie/donut.
2.) I had to solve the numeric input issue: have written a class inherited from sg.Input which needs an extra "mask" argument. This argument determines either the input (user entry) and the output (display formatting) too. It works fine for me.
@luflopes - I had just finished making a lesson that made a bar chart so I had the code literally open in PyCharm. All I had to do was add labels and draw the axes. I kept it super simple in the lesson and drew the bars and values on top. All I did was copy your colors (love those colors) and data.
I did a tiny sliver compared to what you've accomplished. I like your icon for the calendar too. Lots to like about what you posted. Thank you for sharing your work! No doubt, it will be helpful to others (I've already benefited by seeing it and taking ideas from you 😀)
Thank you @luflopes for taking the time to post it! Love seeing these. Really helps with motivation to see many things being built!
Last week I recorded the Graph Element lesson.... the first example of the lesson was drawing a bar chart.
I mocked up a quick little example using your data, colors. The point of the exercise was to demonstrate how to draw these kinds of graphs using a Graph element. They're surprisingly easy when you do two things:
1. Sketch the layout of the graph so you know each component
* A component can be a label, an axis, a bar, etc.
2. Get the units of your graph to match your design / data
In my mockup, I used an X-axist that a simple counting from 1 to 15 to give me simple formula for drawing bars. There are 7 bars, so each bar will take up 2 units.
In the Y-axis, I looked at your data and determined it should be 0 to .06.
For both axis, I actually made them start at a negative value so I could draw axis and labels. The final units were -1 to 15 on the X and from -.01 to .07 on the Y.
This technique may be good in some situations where Matplotlib is going to be difficult to integrate or maybe your data is really simple. I've cheated a bit by looking at your data. I should have computed these values based on the max and min values of your data, but I only took 10 minutes to throw it togethert. and it seemed like maybe hard coding them would be more illustrative.
Love all the graphics you're including your GUIs. It adds a level up from the basic elements. Great work! Thank you for posting them. I get a motivational boost every time I see something new created. Keep building! 💗💗💗
> **Thank you** @Scania-Creations-16 for posting your screenshot! Awesome awesome creation! I'm impressed!
>
> And a thank you to @jason990420 for helping everyone be successful.
>
> Can you post a link to your code?
>
> I'm sure there are things that others can learn. If you're a beginner, then I'm definitely interested in seeing what you did. Beginners tend to do crazy things that others (including me) wouldn't think to do. I've learned a lot from beginners. Don't worry about showing your code. We've all, every one of us, have been where you are in your education of Python.
Actually I'm a Newbie to GUI Programming,although I've started this about 2 years back (simple ones like clock,calculator etc.), It's been only a few months since I've actually put my mind into it.
**The most satisfying part of Programming is the joy we get when we are using our own Program for needs than depending on other softwares :smile::smile::smile::smile::smile::smile:**
I'm sure there are things that others can learn. If you're a beginner, then I'm definitely interested in seeing what you did. Beginners tend to do crazy things that others (including me) wouldn't think to do. I've learned a lot from beginners. Don't worry about showing your code. We've all, every one of us, have been where you are in your education of Python.
I used PySimpleGUI for a [recent project](https://github.com/mechanicalnull/fuzzwatch) to illustrate what a fuzzer is doing, and it made things look pretty good without a ton of code. It was able to handle all the things I wanted to do and wasn't too hard to figure out. Just wanted to share and say thanks!
Yes, I am using Reddit theme. I feel it is easier on the eyes.
Yes that was another of my reason to build this tool. Now just trying to figure out how to delete the data in the tree and repaint it when I select a different region.
Just developed an AWS S3 Viewer application using PySimpleGUI. You can navigate all the buckets in S3 in your account. You can search for a file name. If it exists, it prints the full path in the console.
Recently developed an AWS SQS workbench utility using PySimpleGUI for Windows that allows sending and viewing messages to AWS SQS. It is useful for those whom don't have much knowledge of how to use AWS CLI/SDK. OR find annoying logging into AWS console every time they want to do work with SQS.
I have used multiple facets of PySimpleGUI for this utility. It uses multithreading, File browse/save, table, layout, using eventing to display console msg in a multiline text etc features provided by PySimpleGUI.
@readicculus I'm not sure if you're trying for a retro look with the ------- lines between sections. If you prefer a solid line, you can use a HorizonalSeparator element
STUNNED.... I'm genuinely stunned every time I see one of these GUIs you fine guys and gals are creating. "I've seen it all", and then the next day happens....
I made a GUI for creating batch jobs that run detection pipelines against many pre-defined datasets. This work is to help support aerial surveys of seals and polar bears. We collect millions of images per year, and this GUI is intended to make it easier for the researchers to run detection(and some day tracking or other pipelines).
Picture of the initial page where you can setup your Job by selecting datasets, which detection pipeline to run, and configuring the detection hyperparameters.
PySimpleGUI is sweet! It's designed to be easy for beginners but still allows for advanced feature development. The api is very featured while staying consistent and intuitive. It is clear that a lot of thought, effort, and care has been put into this project. Thanks again for all you do!
Totally get that humbled thing... I feel that way every morning. It's all pretty nuts, but FUN, so we're meeting that goal. What a fun goal to have... fun.... pretty sneaky huh? "You're having way too much fun!" "Yea, but that's the goal!" "Oh oh yea... carry on..."
Yea i mean i tried getting into TKinter at the start but it just felt like there where way too many steps to do anything and the code wasn't super intuitive. I never felt confident enough to start anything.
Being able to make a GUI is one of those really neglected skills that us science & engineering students would really benefit from. I think PSG is simple enough that it should be taught alongside libraries like Pandas and MatPlotLib. I have shared [this video](https://www.youtube.com/watch?v=svcv8uub0D0&t=15s) alot but ill have to do a talk on PSG once uni starts again.
You've got a lot of reasons to be proud of this accomplishment! I mean, just look at that window! My head explodes thinking what it would have taken if written in ANY of the other GUI frameworks. I'm not the best Python programmer (by a LONG ways) and I'm not the best tkinter developer either, but I know enough about both to know it would take a lot of code to duplicate what you built using tktiner directly.
I wish the Wiki was used more. There needs to be something written to make it trivial or something done that I've not yet done because it's rather empty.
I keep trying to find the words to describe the elation at seeing what's being made. It's also a lot of fun just talking to the PySimpleGUI users. You're a great group of people even though your backgrounds are SO different. Many or most are not "software engineers". I'm reminded of this when I see all of these highly scientific programs.
I always wanted to make this app ever since we did this process manually in a lab. I am so lucky i stumbled across a PySimpleGUI video on my youtube and realised it was actually possible!
You're in an environment that's really unique. I don't have an answer that's at my fingertips. Please post an issue, include those great screenshots, a simple layout that will maybe be representative of what you're wanting to do, etc.
There's a demo `Demo_Column_Collapsible_Sections.py` that shows the collapsable sections that are used in a number of built-in PySimpleGUI windows. The test harness `sg.main()` uses one and the open github issue window `sg.main_open_github_issue()` also uses on.
To get the entire window to grow and shrink, the critical piece is the use of the `pin()` helper function. It is `pin` that both reserves the space and also enables a nearly complete collapse of the layout/window.
I tried [my past application](https://github.com/PySimpleGUI/PySimpleGUI/issues/10#issuecomment-791053626) on pinephone (this is one of the reasons why I had wanted to try pysimplegui a while ago). It works fine:
There's a new clipboard function you might find useful in the latest released PySimpleGUI, but it's only "safe" on Windows as the contents may not remain on other platforms. Tkinter still doesn't retain the clipboard contents after the window exits except on Windows.
I created an Electronic Machine Readable Travel Document (eMRTD) reader and verifier with face recognition included. I used PySimpleGUI. Here is a gif of [eMRTD_face_access](https://github.com/Fethbita/eMRTD_face_access):
The taskbar is a difficult challenge. I make one when the window is minimized. It was just a thought. Was I said, not all good ideas. But, every now and then a good one happens.
I tried the custom bar before and the biggest problem is that the window icon does not show up in the taskbar as one would expect. The other issue is that although the title bar is dark, it looks fake. The font looked weird (probably my fault) and the disabled maximize button was misaligned. I just need the taskabr icon issue fixed. Fix should be easy (I think deiconify or something, googling the issue yields a stackoverflow.com answer).
Consider trying a version with a custom titlebar added. You can do that with a simple part in the Window call. It's an easy test, and you may have very well done it. Keep in mind that I have tons of ideas, and they're mostly not good, so try at your own peril.
It's easy to work on this project when these kinds of images are posted. Twitter had a couple of nice ones this week too. It's hard not to want to help you fine, grateful, guys and gals make the software you dream of making. It's a shared accomplishment. I feel some of the happiness you feel. It's a truly joyful experience in the end. I've not had products that have been as rewarding as this project has been. It's different being an 'enabling' technology.
I hope it's OK that I Tweeted out your screenshot this evening. It's a good thing for the Python community to see. The "tkinter is ugly" mantra I think you've proven to be incorrect.
The Dial element that is part of PySimpleGUI+ coming later this year may be a good addition. And the Gauge could be a winner too. Both are creations of @jason990420 . Keep on making stuff! It's good for everyone.
I kept the code strictly to features available in the plain PySimpleGUI API calls. Did not use the .Widget variable to attempt anything like button highlights on mouseover. I also didn't do the theme switch, but code demonstrating how to do this is in many Demo Programs.
Yes I have tried pydroid3 and it is able to start the second application in tk, but I feel that the solution with termux is more independent.
One interesting thing would be to understand if the applications you make with pysimpleguiqt can be compiled for android as well, I had read that both pyside and pyqt5 had this possibility.
if I have well understood what they are for, trinket and repl.it are a good thing, but I would use them more as a demonstration because usually I would prefer that what I use is not network dependent (of course it depends on what I want to do).
Anyway thanks to you for working on this library, I also saw your music project on youtube and it's really fabulous :)
Have you tried pydroid3? It's what I recommend for Android. I've been able to use OpenCV with it. Lately, I noticed the rotating the phone no longer causes the program to restart. There was something before that caused this to happen but it seems to be fixed now.
Another option for you on your phone is to use Trinket. Special code was added specifically for Trinket support. Normally Trinket windows lack a titlebar. A few releases back I added a PySimpleGUI custom titlebar automatically on Trinket programs. You can "publish" Trinkets so that they are standalone programs without the IDE being shown. Here's an example:
the second one i made a few days ago, it's to estimate when you will finish a series of steps, it works with both pysimplegui and pysimpleguiweb.
What's special is only the horizontal bar implemented in pysimpleguiweb with a text bar, and the fact that it works on android through termux, just by pressing an icon on the desk.
Unfortunately on my phone the "termux-api" doesn't work, so I can't push myself to do much more fun stuff, but I hope pysimpleguiweb will be continued, because it allows me to make these simple apps in python without having to compile anything or study how android works.
@techtanic - I like that you used the multiline.print method. I don't see it used all that often in code other than my own. If you print from a number of different functions, you may like the sg.cprint function. It will enable you to set the output to a particualr multiline, then throughout you entire application, you can call sg.cprint() without having to know the name of the window nor the key of the multilne.
# A script/software for automatically enrolling/joining 100% discounted Udemy courses for free. Get Paid Udemy courses for free with just a few clicks.
I have been very pleased to rewrite a tkinter app of mine with PySimpleGUIQt. The app loads an XML file and facilitates easy viewing of the XML TEI encoded data and editing of specific attributes and elements in the file. Since I need a dynamic layout, I thought PSG might be off the table. Fortunately, I tried out Mike's suggestion to others to change the visibility parameter to make it _appear_ dynamic. In the GIFs below, the "Variation Units" and "Basetext" frames are behaving just like the dynamic layout I had previously coded with pure tkinter. Previously, I was destroying and repacking text labels. This PSG version simply hides any text that is not currenlty needed. In the "Basetext" frame, each Greek word with an index number under it is a single Text element. Each number in the "Variation Units" frame is also an individual Text element. I can't know how many Text elements will be needed, but programmatically hiding and unhiding them is working very well. I also appreciate how easy it was to add color themes. These are two that I came up with. The first one is "Parchment" and uses the real parchment and ink colors of the ancient manuscripts I study. The second one is my ideal "Dark Mode."
I appreciate PSG because I had really wanted to rewrite this tool so that it was more reliable for my own research, but it takes me (a humanities research with a little self-taught knowledge of Python) too long to build a tkinter layout.
One script to add paragraphs with justy text into sg.Graph, the speed to show the result take time longer than normal, maybe one second, for each character processed and printed on Graph. Now setting, only for full a paragraph, are font, color, location and line spacing. View function only.
The visualiser renders at 200FPS blocking on audio capture, the monitor renders at 100FPS blocking on timeout with time.time()-based 1-second gaps in polling
I have to configure the PySimpleGUI WIKI soon so that posts like these can be properly layed out. Just the same, it's already an incredible list. Look at all those gorgeous windows!! They're window all user created. I get ideas from you guys/gals.... eveyry single time, so keep posting and I'll keep learning.
The Manuscript Notepad app that wants to store settings across application runs, there's a simple user_settings interface made that will create and manage the contents of the json file for you., Your application doesn't even know it's a JSON file. I'm changing the interface a little, but the current one is quite useful now. There are some great demos on this feature posted.
Are there any values that you want to save between runs? I am thinking about the values shown on the Storage tab. You can use the `user_settings` APIs to save values across runs
I started to pick up some programming for the first-time during lockdown. My goal was to enhance my research. I made a few straight tkinter apps before discovering PSG. I am very happy with PSG--it has made is possible for a humanities PhD student to create a few handy tools for myself in hours rather than days. This is just a note taking app--I wanted to make something that stored specific tags for each note. I study ancient Greek manuscripts and I have been experimenting with the best way to store and organize my observations. Perhaps this custom solution will suit me best. The app builds Tree element data from a json file. I found it has been helpful to make the DPI awareness load from a settings file that can be edited from the menu bar.
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.
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.
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!
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.
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.
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!
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.
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](https://pysimplegui.readthedocs.io/en/latest/cookbook/#recipe-printing-4a4-using-cprint-function-color-printing-to-print-to-multiline) 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.
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:
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.
@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.
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.
We have just published our first Python Library: [Watermarkd](https://github.com/holypython/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.
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](https://holypython.com/how-to-watermark-images-w-python-pil/), [here](https://holypython.com/gui-with-python-checkboxes-and-radio-buttons-pysimplegui-part-ii/) and [here](https://holypython.com/gui-with-python-file-browser-and-input-form-pysimplegui-part-iii/).
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.
The link to the bell ringing simulator is [https://github.com/aajshaw/Ensenble](url), 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.
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.
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 @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.
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.
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.
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.
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)
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.
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!
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.
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.
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](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Tree_Element.py) one.
My first software [project](https://github.com/dfatka/paletteswapper) 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.
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
> 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.
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.
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
[Pup Quiz](https://github.com/kovadarra/pupquiz) 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. :)
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.
> @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.
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:
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](https://github.com/meteorspectroscopy/meteor-spectrum), but I warn you, the code is quite a mess. To see how it works, look [here](https://meteorspectroscopy.org/2020/03/27/meteor-spectra-analysis-new-version/)
the theory behind it is found at https://meteorspectroscopy.org/
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.
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.
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.
(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.)
@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. 👍
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.
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.
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**
![Screenshot from 2020-04-30 03-58-11](https://user-images.githubusercontent.com/64561775/80692496-41fcc200-8a97-11ea-932c-5368a298848d.png)
![Screenshot from 2020-04-30 04-11-25](https://user-images.githubusercontent.com/64561775/80693567-d1ef3b80-8a98-11ea-8820-daa85b06c271.png)
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.
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.
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.
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!
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.
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
@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-)
@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.
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.
@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.
@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.
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!
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.
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).
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.
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.
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!
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?
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
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.
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.
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.
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!
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.
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:
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.
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:
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.
@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.
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!
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!
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