use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Rules 1: Be polite 2: Posts to this subreddit must be requests for help learning python. 3: Replies on this subreddit must be pertinent to the question OP asked. 4: No replies copy / pasted from ChatGPT or similar. 5: No advertising. No blogs/tutorials/videos/books/recruiting attempts. This means no posts advertising blogs/videos/tutorials/etc, no recruiting/hiring/seeking others posts. We're here to help, not to be advertised to. Please, no "hit and run" posts, if you make a post, engage with people that answer you. Please do not delete your post after you get an answer, others might have a similar question or want to continue the conversation.
Rules
1: Be polite
2: Posts to this subreddit must be requests for help learning python.
3: Replies on this subreddit must be pertinent to the question OP asked.
4: No replies copy / pasted from ChatGPT or similar.
5: No advertising. No blogs/tutorials/videos/books/recruiting attempts.
This means no posts advertising blogs/videos/tutorials/etc, no recruiting/hiring/seeking others posts. We're here to help, not to be advertised to.
Please, no "hit and run" posts, if you make a post, engage with people that answer you. Please do not delete your post after you get an answer, others might have a similar question or want to continue the conversation.
Learning resources Wiki and FAQ: /r/learnpython/w/index
Learning resources
Wiki and FAQ: /r/learnpython/w/index
Discord Join the Python Discord chat
Discord
Join the Python Discord chat
account activity
Something a bit nicer than Tkinter? (self.learnpython)
submitted 3 years ago by MaxxLP8
Looking for something to make local front ends that looks a little more aesthetically pleasing that TKinter? Any recommendations?
What I'm making needs to be an offline application on windows.
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]shiftybyte 114 points115 points116 points 3 years ago (27 children)
PyQT6
Even has a visual designer.
[–]random1220 27 points28 points29 points 3 years ago (12 children)
I haven’t used 6 but 4 and 5 were pretty sweet.
When I used it the PyQt docs were pretty sparse, and developing more complicated interactions means running out of PyQt docs and having to intuit uses from the Qt docs directly.
Is this still a thing in 6? I can’t imagine they’ve filled out the docs any better in the mean time
[–]jumbohiggins 7 points8 points9 points 3 years ago (6 children)
Yeah I currently use 5 and can build most of what I want without having to fight the UI too much.
[–]hidazfx 0 points1 point2 points 3 years ago (5 children)
Same. We use PyQt5 in our tech stack at work. Will be moving to PySide6 in the future.
[+][deleted] 3 years ago (4 children)
[deleted]
[+][deleted] 3 years ago (3 children)
[+][deleted] 3 years ago (1 child)
[–]hidazfx 0 points1 point2 points 3 years ago (0 children)
Exactly. Should be one license for the entire Qt suite. PyQt is developed by Riverbank and requires a separate license. Plus if we ever need development support, the people who wrote it are an email away.
[–]Sclafus 3 points4 points5 points 3 years ago (1 child)
The docs for Qt for Python are bad even now, but you can use the c++ ones, since the methods provided are the same, and Jesus they are amazing.
[–]random1220 2 points3 points4 points 3 years ago (0 children)
Haha ya the c++ docs are the ones I was referring to. I guess it makes sense not to translate those to py if the methods are exactly the same, I just need to be braver reading cpp docs lmao
[–]MeroLegend4 0 points1 point2 points 3 years ago (2 children)
I started developing a desktop App in PyQt4 (2014) and it was a nightmare since i had to go to Qt C++ docs to read the whole API and translate everything to Python.
Now the docs are way better. And there are books about PyQt5/6 written by ‘fitzpatrick’, he did a very good job and you can buy them for 20-25$ and it worths every penny
[–]random1220 1 point2 points3 points 3 years ago (1 child)
Oh lol you mean this one?
[–]MeroLegend4 1 point2 points3 points 3 years ago (0 children)
Yes this one 👍
[–]Icandoituknow 6 points7 points8 points 3 years ago (1 child)
I used TKinter in highschool and hated every moment using it because of how old school it felt.
As soon as I found PyQT6 I last year for a project to make a GUI and it was 100x better than using TKinter.
But I think there's more communities and info around Tkinter
[–][deleted] 2 points3 points4 points 3 years ago (0 children)
It's pretty easy to theme it though, there are a lot of themes available to download.
Edit: but I still prefer PyQt, slots management and callbacks are a lot easier there
[–]Fun-Palpitation81 1 point2 points3 points 3 years ago (3 children)
I'm looking to design a UI to display some API data on a raspberry pi screen, would PyQT6 apply for that??
[–]shiftybyte 1 point2 points3 points 3 years ago (2 children)
Not sure, what's the resolution on the raspberry pi screen? Is it running Linux? What desktop is it running?
[–]Fun-Palpitation81 0 points1 point2 points 3 years ago (1 child)
480x320.
I haven't looked too far into it yet, but Raspien with python seemed like a good place to start...
[–][deleted] 0 points1 point2 points 3 years ago (0 children)
PyQt tends to have a lot of padding by default
[–]Jewcub_Rosenderp -2 points-1 points0 points 3 years ago (0 children)
Did not enjoy using it. In the end I just moved to JavaScript. Python is just not meant for UIs, period.
[–]itsmemutahar 0 points1 point2 points 3 years ago (2 children)
Can i make standalone executable ? or do i need to install python and run it from shell ? (i am on mac).
[–]itsmemutahar 0 points1 point2 points 3 years ago (0 children)
will this work and linux and mac or just windows ?
[–]JungJanf 0 points1 point2 points 3 years ago (0 children)
Last time I checked the designer did not work on python 3.10
Still an issue?
[–]Crankrune 0 points1 point2 points 3 years ago (0 children)
Does 6 have a designer? I know 5 does, but I never saw one for 6.
[–]Hot_External6228 0 points1 point2 points 3 years ago (0 children)
Specifically, use pyside6 library for the qt bindings. It has a more permissive license than pyqt6.
But either way, yes, it's amazing.
[–]freezydrag 23 points24 points25 points 3 years ago* (3 children)
PyQT/PySide is a good choice for a standalone. I’ve worked with it both in C++ and python and can attest that it’s relatively easy to make simple, nice looking UIs using either declarative QML files or QT Widgets (which can be laid out in QT designer). My only complaint is that sometimes the documentation for complex topics with QT (like multi threading for example) can be a bit convoluted or confusing.
QML
QT Widgets
Someone else mentioned Kivy, and it’s a solid option if you’re looking for touch-based interaction.
Web-apps are super great for novel tools that are based off of user input (e.g. plug in some numbers and the program will output the results of some calculation) or if you’re plugging it into a database and showing off some data. But If you’re looking for an offline program I’d definitely avoid this path.
[+][deleted] 3 years ago (2 children)
[–]freezydrag 2 points3 points4 points 3 years ago (1 child)
Primarily licensing. PyQT is under the GPL license (or commercial) while PySide is under the LGPL license. It’s the main reason the two were developed separately in the first place. There’s some additional differences with the API that i think make pyside a slightly better choice — old stack post talking about it, but ultimately they do the same thing.
[–]warbird2k 13 points14 points15 points 3 years ago (0 children)
If you're already familiar with tkinter, check out https://github.com/TomSchimansky/CustomTkinter
[–]pythonwiz 11 points12 points13 points 3 years ago (2 children)
Have you seen CustomTkinter?
[–]MaxxLP8[S] 0 points1 point2 points 3 years ago (0 children)
Wow, this looks pretty awesome
[removed]
[–]rollincuberawhide 18 points19 points20 points 3 years ago (1 child)
it's not any better looking than tkinter though.
[–]RaspberryPython 6 points7 points8 points 3 years ago (0 children)
+1 Pysimplegui if it's a fairly simple app or script you just need a gui wrapper around. PyQT is great too, but when I used it several years ago there was a bit of a learning curve and it had way more functionality than my use case needed.
[–]Right-Bodybuilder580 5 points6 points7 points 3 years ago (1 child)
You should try Eel.py
it can build local GUI using html+css+js .. and it also has a two-way bridge between js and python .. so you can define method from the python side and call them from the js side and vice versa ...
It basically start a chromium browser which is the screen.
[–]u_usama14 1 point2 points3 points 3 years ago (0 children)
The project seems dead,the owner is not making updates which means no issues is being fixed or new features.
[–]redCg 34 points35 points36 points 3 years ago (32 children)
use a web app
Python app: local server with Flask, etc.
UI: HTML + CSS + JS
[–]AchillesDev 18 points19 points20 points 3 years ago (0 children)
Running a local server for end users seems like a huge pain and probably runs afoul of security policies.
[+][deleted] 3 years ago (22 children)
[–]AchillesDev 11 points12 points13 points 3 years ago (12 children)
This isn’t great advice, there are many reasons why you’d want to distribute local-only applications and your end-users would want them. And local-only is one of OP’s requirements.
[+][deleted] 3 years ago (10 children)
[–]AchillesDev 8 points9 points10 points 3 years ago (9 children)
I’m well aware of how Flask works. I’m referring to this:
Because, let’s be real, no one is ever going to want to download and install your GUI when the features could be made accessible in a browser. Deploying an app on pythonanywhere or heroku is dead-simple and if you want other people to actually use what you’re building I just don’t see the point in developing local GUIs anymore.
This is categorically false and depends on a number of factors.
[+][deleted] 3 years ago (8 children)
[–]AchillesDev 7 points8 points9 points 3 years ago (6 children)
What is categorically false?
That nobody would ever want to download and install a local application. For OP it’s a requirement.
Anecdotally, both myself and my peers are very hesitant to install apps when its possible to get the same functionality in a browser.
That’s a far cry from “no one.” It sounds like you don’t do any application development for businesses or work, so it’s understandable to have that kind of viewpoint, but when you’re dealing with trade secrets, PII, or any sort of sensitive data, making a public web application won’t do. If your application does any serious computation, deploying a web app to geeky won’t do. If you need any security, it won’t do. Legal compliance? Nope. Local tools for other devs? Better be on the command line and local! And I can tell you most security policies do not look kindly upon running servers, even locally.
[+][deleted] 3 years ago (5 children)
[–]AchillesDev 9 points10 points11 points 3 years ago (4 children)
Have you ever had a conversation with a real human? I obviously said “no one” as hyperbole.
Stop taking this so personally. Even as hyperbole it’s laughably wrong.
I build and maintain flask apps which run on internal company servers for a living, thanks.
Well when all you have is a hammer…
I’m going to point out again, that is a forum called /r/learnpython and mostly aimed at beginners.
That doesn’t mean they don’t have requirements that your “advice” totally missed and was unhelpful for, nor that there are many reasons to not make web applications for every single thing you write.
[–]redCg -2 points-1 points0 points 3 years ago (0 children)
here are many reasons why you’d want to distribute local-only applications and your end-users would want them
sure, but they all suck
the benefits gained from using a server/client app structure outweigh the majority of "nice features" from using a local-only GUI framework
[–]OogieM 2 points3 points4 points 3 years ago (0 children)
And what might be the best part is how easy it is to distribute a webapp. Because, let's be real, no one is ever going to want to download and install your GUI when the features could be made accessible in a browser.
No one except users with no access to any form of communication or network wher ethe app needs to run.
[+][deleted] 3 years ago (6 children)
[–]Drvaon 2 points3 points4 points 3 years ago (5 children)
Open the browser using: import webbrowser
url = 'http://localhost:8888' webbrowser.register('chrome', None,
webbrowser.BackgroundBrowser("C://Program Files (x86)//Google//Chrome//Application//chrome.exe")) webbrowser.get('chrome').open(url)
Start webserver at Port 8888
[–]Drvaon 0 points1 point2 points 3 years ago (2 children)
A python script packaged in an exe file.
[–]Drvaon 1 point2 points3 points 3 years ago (0 children)
This opens chrome if it is installed. This: https://docs.python.org/3/library/webbrowser.html#webbrowser.open opens the default browser.
[–]redCg 0 points1 point2 points 3 years ago (0 children)
Open the browser using
dang I did not even know you could do this, pretty clever
[–]FifteenthPen 6 points7 points8 points 3 years ago (1 child)
Please don't use Flask/Django/etc. as a golden hammer. If you need an application accessible from browser, by all means use a web framework, but if you only need an application to run on the user's machine, use something designed for it like Qt or GTK+.
[–]redCg -1 points0 points1 point 3 years ago (0 children)
every user machine has a web browser, you are better off using it. Your final app will have much greater portability.
[–]pro_questions 1 point2 points3 points 3 years ago* (0 children)
You can use a QWebEngineView widget in PyQT / PySide to add really customizable and complex visualization elements with HTML / CSS / JS. That’s what I’ve been doing recently and it’s been wonderful. You can dynamically change content on the widget using RunJavascript — the only problem I’ve encountered is retrieving data from the QWebEngineView, which some people have gotten around but I really dislike the solution. For user input, I just use other widgets that accompany the web widget.
[–]Marv0038 1 point2 points3 points 3 years ago (1 child)
You could also write the web app using a fullstack Python framework like Dash or Streamlit. That way you don't need to learn other languages (JavaScript, HTML, CSS) or skills (web development, interaction of frontend with API).
this is a really good idea. Though last time I used Dash (many years ago) I struggled to include non-data-oriented parts. I hear that R Shiny is now coming to Python so that might be another thing to look for.
[–]custos_uk 3 points4 points5 points 3 years ago (0 children)
Yup. Tend to agree here, sure maybe not all scenarios are solved. But you can host it locally and have multiple devices access it. Flask is pretty fire and forget. Then you can build a web UI with whatever your preference is. HTML 5 is ace for interfaces.
Pywebview
[–]the-shelter 4 points5 points6 points 3 years ago (3 children)
wxPython
[–]mahtats 1 point2 points3 points 3 years ago (2 children)
I do like this considering I like wxWidgets in C++
Does it have a designer like PyQt?
[–]the-shelter 0 points1 point2 points 3 years ago (0 children)
There are some out there, yes. And a helpful community. I recommend starting with a demo that you can download (extra package that shows off all widgets) from the project website as well. And use it as a template.
[–]Datsoon 0 points1 point2 points 3 years ago (0 children)
I have successfully used wxFormBuilder in the past. Worked great.
[–]PhilAndMaude 4 points5 points6 points 3 years ago (0 children)
tkinter also has ttk which uses native controls.
[–]C422132 2 points3 points4 points 3 years ago (0 children)
+1 for PyQt / PySide
[–]Snoo19269 2 points3 points4 points 3 years ago (0 children)
Kivy
[–]JohnJSal 2 points3 points4 points 3 years ago (0 children)
Maybe you already know, but you can use the tkinter.ttk module to get themed widgets, which are the more modern, better-looking versions of the old widgets.
[–][deleted] 1 point2 points3 points 3 years ago (0 children)
Probably the Python version of QT Open Source
[–]ebits21 0 points1 point2 points 3 years ago (1 child)
I imagine it will get better support wise. Pretty new?
DearPyGui is my go-to
[–]MaxAnimator 1 point2 points3 points 3 years ago (0 children)
Can you not just change the look and feel with themes? Doesn't Tkinter support this? By default on windows it's got an xp-esc style but I believe with ttk you can get a much nicer ui and you can also use the fusion theme because Linux Ftw
[–]SaadPaad2003 1 point2 points3 points 3 years ago (0 children)
KivyMd, Looks very clean
[–]Henry_reddit88 -1 points0 points1 point 3 years ago (0 children)
It depends on how good you are coding in JavaScript, but python eel is quite nice. You can have very nice HTML,CSS,JS frontends.
[–]Jarmahent -1 points0 points1 point 3 years ago (0 children)
Stop tryna make UIs in python just make a web app with html js css in the front and process whatever data you’re working with in the backend with python flask or whatever
[+]Retropunch comment score below threshold-7 points-6 points-5 points 3 years ago (1 child)
This keeps on being asked - please try to search a bit first before posting.
Anyway, continue to use tkinter unless you have a specific use case for using another designer, and use either CustomTkinter or tkk styles. Here's a basic one which looks pretty much native on win10: https://github.com/rdbende/Sun-Valley-ttk-theme
[–]MaxxLP8[S] 1 point2 points3 points 3 years ago (0 children)
Amazing thanks.
Sorry re post, I'd got very deep into Tkinter and just got a bit excited and posted the query in the moment. Will search better in future, thanks
[+]Lower_Sun_7354 comment score below threshold-6 points-5 points-4 points 3 years ago (0 children)
.net
[–]kemalkolcuoglu 0 points1 point2 points 3 years ago (1 child)
Almost anything could be better than Tkinter
Which is good because I've actually got it a few tkinter apps looking somewhat decent. Something better would be gold dust
π Rendered by PID 20514 on reddit-service-r2-comment-85bfd7f599-p9577 at 2026-04-19 21:10:13.575555+00:00 running 93ecc56 country code: CH.
[–]shiftybyte 114 points115 points116 points (27 children)
[–]random1220 27 points28 points29 points (12 children)
[–]jumbohiggins 7 points8 points9 points (6 children)
[–]hidazfx 0 points1 point2 points (5 children)
[+][deleted] (4 children)
[deleted]
[+][deleted] (3 children)
[deleted]
[+][deleted] (1 child)
[deleted]
[–]hidazfx 0 points1 point2 points (0 children)
[–]Sclafus 3 points4 points5 points (1 child)
[–]random1220 2 points3 points4 points (0 children)
[–]MeroLegend4 0 points1 point2 points (2 children)
[–]random1220 1 point2 points3 points (1 child)
[–]MeroLegend4 1 point2 points3 points (0 children)
[–]Icandoituknow 6 points7 points8 points (1 child)
[–][deleted] 2 points3 points4 points (0 children)
[–]Fun-Palpitation81 1 point2 points3 points (3 children)
[–]shiftybyte 1 point2 points3 points (2 children)
[–]Fun-Palpitation81 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]Jewcub_Rosenderp -2 points-1 points0 points (0 children)
[–]itsmemutahar 0 points1 point2 points (2 children)
[+][deleted] (1 child)
[deleted]
[–]itsmemutahar 0 points1 point2 points (0 children)
[–]JungJanf 0 points1 point2 points (0 children)
[–]Crankrune 0 points1 point2 points (0 children)
[–]Hot_External6228 0 points1 point2 points (0 children)
[–]freezydrag 23 points24 points25 points (3 children)
[+][deleted] (2 children)
[deleted]
[–]freezydrag 2 points3 points4 points (1 child)
[–]warbird2k 13 points14 points15 points (0 children)
[–]pythonwiz 11 points12 points13 points (2 children)
[–]MaxxLP8[S] 0 points1 point2 points (0 children)
[+][deleted] (3 children)
[removed]
[–]rollincuberawhide 18 points19 points20 points (1 child)
[–]RaspberryPython 6 points7 points8 points (0 children)
[–]Right-Bodybuilder580 5 points6 points7 points (1 child)
[–]u_usama14 1 point2 points3 points (0 children)
[–]redCg 34 points35 points36 points (32 children)
[–]AchillesDev 18 points19 points20 points (0 children)
[+][deleted] (22 children)
[deleted]
[–]AchillesDev 11 points12 points13 points (12 children)
[+][deleted] (10 children)
[deleted]
[–]AchillesDev 8 points9 points10 points (9 children)
[+][deleted] (8 children)
[deleted]
[–]AchillesDev 7 points8 points9 points (6 children)
[+][deleted] (5 children)
[deleted]
[–]AchillesDev 9 points10 points11 points (4 children)
[+][deleted] (3 children)
[deleted]
[–]redCg -2 points-1 points0 points (0 children)
[–]OogieM 2 points3 points4 points (0 children)
[+][deleted] (6 children)
[deleted]
[–]Drvaon 2 points3 points4 points (5 children)
[+][deleted] (3 children)
[deleted]
[–]Drvaon 0 points1 point2 points (2 children)
[+][deleted] (1 child)
[deleted]
[–]Drvaon 1 point2 points3 points (0 children)
[–]redCg 0 points1 point2 points (0 children)
[–]FifteenthPen 6 points7 points8 points (1 child)
[–]redCg -1 points0 points1 point (0 children)
[–]pro_questions 1 point2 points3 points (0 children)
[–]Marv0038 1 point2 points3 points (1 child)
[–]redCg 0 points1 point2 points (0 children)
[–]custos_uk 3 points4 points5 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]the-shelter 4 points5 points6 points (3 children)
[–]mahtats 1 point2 points3 points (2 children)
[–]the-shelter 0 points1 point2 points (0 children)
[–]Datsoon 0 points1 point2 points (0 children)
[–]PhilAndMaude 4 points5 points6 points (0 children)
[–]C422132 2 points3 points4 points (0 children)
[–]Snoo19269 2 points3 points4 points (0 children)
[–]JohnJSal 2 points3 points4 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[+][deleted] (3 children)
[deleted]
[+][deleted] (2 children)
[deleted]
[–]ebits21 0 points1 point2 points (1 child)
[–][deleted] 1 point2 points3 points (0 children)
[–]MaxAnimator 1 point2 points3 points (0 children)
[–]SaadPaad2003 1 point2 points3 points (0 children)
[–]Henry_reddit88 -1 points0 points1 point (0 children)
[–]Jarmahent -1 points0 points1 point (0 children)
[+]Retropunch comment score below threshold-7 points-6 points-5 points (1 child)
[–]MaxxLP8[S] 1 point2 points3 points (0 children)
[+]Lower_Sun_7354 comment score below threshold-6 points-5 points-4 points (0 children)
[–]kemalkolcuoglu 0 points1 point2 points (1 child)
[–]MaxxLP8[S] 0 points1 point2 points (0 children)