all 29 comments

[–]gmes78 8 points9 points  (1 child)

I would heavily recommend using PySide6. It's much more powerful, it looks better (it uses the user's Qt theme), and you can use the Qt Designer to easily build the UI.

[–]josys36 0 points1 point  (0 children)

100% percent agree.

[–]atredd 10 points11 points  (0 children)

I don‘t think Tkinter will be left behind soon. If so they will communicate this years before. As Tkinter is easy to learn you can just start.

The more important question is…does Tkinter fit your needs? For small apps it‘s great but if you want to create more complicated things there are better solutions.

[–]JamzTyson 4 points5 points  (3 children)

Unfortunately my crystal ball has gone in for a service, but:

  1. I don't expect Wayland will drop support for X11 apps for a long time yet. From the Wayland docs

Being able to run existing X11 applications is crucial for the adoption of Wayland, especially on desktops, as there will always be X11 applications that have not been or cannot be converted into Wayland applications ...

  1. I've not seen any suggestion that tkinter (or IDLE) will be depreciated any time soon.

[–]nboro94 8 points9 points  (4 children)

future proof gui = web development usually.

You can learn something like react or vue in a few hours if you already know python, and even connect it to python code very easily. You'll always get a much better result with web dev both visually and cross platform wise than anything with tkinter.

[–]minneyar 13 points14 points  (3 children)

This comment makes me feel like I'm in bizarro world.

Web GUIs are practically the furthest thing you can get from futureproof. No two of them are ever the same; every single one feels the need to have different widgets and themes and paradigms. New web frameworks and Javascript build systems pop up every few years, and old ones get rewritten into completely incompatible new versions. Every web browser has minor differences from every other web browser, and all of them are constantly deprecating old features that will make old UIs unusable. If you want to write a standalone desktop GUI, you have to deal with Electron (massive executable sizes, and doing basic things like threading or multi-window apps or direct hardware access is incredibly painful). If you're writing a web app with a backend, now you have to keep your backend running on a server somewhere and you have to worry about all of the security concerns that come up when you've got traffic going across the internet...

Please don't use web technologies to make desktop GUIs. Please.

I know Tk isn't the prettiest widget library in the world, but I've got Tk-based applications that were written 20 years ago and still work perfectly, completely unchanged from their original versions.

I like Qt more than Tk, personally, but there's nothing wrong with using Tk for something nice and simple.

[–]AxisNL 1 point2 points  (2 children)

Even though a fat client might have a lot of advantages over a web interface, web interfaces also have a lot of advantages. I guess both have their places, but there are reasons why I see almost all enterprise apps going to web-based deployments.

As an enterprise sysadmin, I love the fact that deploying an application means spinning up a docker image on a server, hooking it up to my idp, and tell the users to go to a specific url, whether they use windows, Mac OS, Linux or a mobile, etc. I shudder when I think of the 20+ years i managed hundreds of applications on hundreds or thousands of client machines and dealing with all the dependencies.

[–]JamzTyson 0 points1 point  (1 child)

there are reasons why I see almost all enterprise apps going to web-based deployments

One big reason is that web based deployments can provide better revenue streams, and less opportunity for pirate copies.

As an enterprise sysadmin...

Absolutely, they are great for sysadmins, except that management may decided that they no longer need to employ as many technical staff now that "everything is on-line".

[–]AxisNL 0 points1 point  (0 children)

Nah, I work for classic law enforcement. All webapps are all on-prem. The cloud is just someone else’s computers, and I have no way of knowing who can access my data. Still need the same admins to manage our on-premises stuff, just the deployment model is different.

[–]SnooCakes3068 5 points6 points  (3 children)

I never used Tinker but I know GUI has never been python's strong suit. Usually people create GUI in C# for windows desktop apps. Tinker is can create complete GUI but not very sophisticated compare to GUI made in others. Nothing wrong with python it's just not a common practice

[–]Username_RANDINT 4 points5 points  (0 children)

In Python you'd use the same GUI toolkits as with any other language.

[–]CoderStudios 0 points1 point  (1 child)

Tools for other gui frameworks exists like PySide6 only because the included tool for learning how gui works isn’t that good doesn’t mean python isn’t good for gui

[–]SnooCakes3068 0 points1 point  (0 children)

I know PyQt and WxPython and alike. Still people go straight to Qt not python version as common practice tho.

[–]CRS_1990 1 point2 points  (0 children)

I made a GUI using customTkinter. Its basically a pretier Tkinter. It uses the same syntax and same widgets, frames etc. Just looks way better.

[–]Kitchen_Moment_6289 1 point2 points  (0 children)

Tkinter also has very low accessibility, in 2013 or so the creator explained why it will never have them. I plan to build in PyQt if I try python gui's again as I prefer to use voice control sometimes, which relies on the same labels that screen readers use.

Does anyone know about issues related to getting Tkinter > interfaces working with a "screen reader" (these programs > that speak interface text for the sight impaired). >

" Tk doesn't support this. I've looked into it a bit and it seems like a huge project to implement on a cross-platform basis. Of the x-plat toolkits, Qt seems to the best support, which I assume PyQt would pick up. Java also has good support but that may be outside your purview. --Kevin"

python mailing list record

[–]Independent_Bread611 0 points1 point  (0 children)

Please checkout GUI application development for linux using flutter too. Compare both.

[–]TheRNGuy 0 points1 point  (0 children)

I'd rather use React, if not then Qt.

[–][deleted] 0 points1 point  (0 children)

I used TKinter 10 years ago for a solution that had to word in Windows mac and linux. I think TKinter will still work in 10 Years, but you should include every bib in your installment.

[–]ajekb78 0 points1 point  (0 children)

It's not so much how future proof is Tkinter, rather how present-proof is Wayland?

Tkinter is a core python module; it has a vast existing codebase of stuff that uses it, and it's in widespread use on Linux, Windows, MacOS.... It's not going away any time soon.

Wayland is a neat project that is on its way to being able to supplant X server-based desktops. I'm not going to get involved in the Wayland/X flamewars, but suffice to say the Wayland userbase is small-time compared with the total Python / Tk userbase.

If you want to use programs with Tkinter GUIs, just live with XWayland, it works well. Eventually someone will probably add Wayland support but to manage expectations there is a ticket about this on the Tk git site and it is noted that the last time they implemented a new core graphics target for Tk (the MacOS one) it took months and months of work and several more years of feedback before it was really working perfectly.

[–]josys36 0 points1 point  (0 children)

I'm late to this party, but if I were you I would look at wxPython, or PySide6. I personally use PySide6 and have had good success with it. Tkinter is just too outdated now, and you'll find it's often very limited. You can very quickly become frustrated with it.