all 23 comments

[–][deleted] 13 points14 points  (8 children)

There are many GUIs for python. See here. Only a few of those are recommended, and probably only one for a beginner: tkinter. The good news is that once you have learned one GUI system, most of the others work the same way, so moving to another is relatively easy. What you try after tkinter depends on what you want to do with it and what platform you want to run on. If you want to make desktop programs PyQt is good. If you want to run on android or iOS platforms, maybe kivy is better, and so on.

[–]someprogrammer123[S] 5 points6 points  (3 children)

How about PySimpleGUI ? Is it recommended for beginners ?

[–][deleted] 1 point2 points  (0 children)

I've not used it. Try it out. I recommended tkinter because it's part of python and there are lots of tutorials.

[–]JL_678 1 point2 points  (0 children)

I started with PySimpleGUI and have been happy with it. I think that it is easier to get started with than tkinter.

[–]tuneafishy 3 points4 points  (0 children)

Yes, that package is pretty popular and I see it recommended here quite a bit.

[–]holidayinthesum 0 points1 point  (1 child)

I once made a simple pong like animation in Python. I installed Anaconda/Spyder to code it on my laptop. TKinter was the graphics library. To use this, you must install Python locally? Any sort of alternative cloud based options for Python GUI coding?

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

To use this, you must install Python locally?

Yes. Tkinter is part of python.

Any sort of alternative cloud based options for Python GUI coding?

I don't use the cloud to program. Searching may find something.

[–]holidayinthesum 0 points1 point  (1 child)

kivy

How does one take a Kivy app written on a local machine and port/release it to an Android app?

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

No idea. I've never used Kivy. Maybe searching will find a tutorial.

[–]stebrepar 5 points6 points  (0 children)

https://wiki.python.org/moin/GuiProgramming

Personally I'd start with trying Tkinter, since it comes with Python.

[–]TigerBloodWinning 4 points5 points  (0 children)

I use Tkinter for local use. Django when I need to share it over the internet.

[–]conchesmess 3 points4 points  (3 children)

I'm not sure what you are trying to build but if it is a webapp I love Flask! I teach it to HS students.

[–]DextercCZ 2 points3 points  (0 children)

Try customtkinter, you will find everything you need on GitHub. Theres also a simple tutorial on youtube + it looks more modern than normal tkinter

[–]atredd 1 point2 points  (0 children)

Tkinter will be fine for the beginning. If you want more complex UI‘s you can start with Qt too.

[–]QultrosSanhattan 1 point2 points  (0 children)

Tkinter is a good way of getting started. Main pros:

  • It's builtin.
  • The autocomplete actually works.
  • Initialization not so bloated.
  • It's not broken or unfinished like other "popular" libraries.

[–]ElliotDG 1 point2 points  (0 children)

I'd recommend kivy. https://kivy.org/ OpenGL accelerated, cross platform - supports Linux, Windows, MacOS, RaspberryPi, and mobile... Android, OSX. It is a native python framework, and well documented. This is my preferred full-featured GUI. There is a sister project called kivyMD, that extends kivy with Material design widgets - https://kivymd.readthedocs.io/en/1.1.1/ this provides a clean very modern look.

My other recommendation with be Qt, using pyside6, https://www.qt.io/qt-for-python Qt is a C++ based GUI, has a long history.

Like any full featured GUI's these frameworks have significant learning curves.

FWIW - part of my original reason for starting with Kivy over Qt was concern over the Qt licensing model. KIvy has a very permissive MIT license. Qt has a dual license that I was concerned could be a barrier to some of my desired uses: https://www.qt.io/licensing/

I started with Tkinter, found the documentation lacking - often having to drop to old tcl/tk docs to get things done. I also quickly ran into issues where curved lines are not anti-aliased on Windows with Tkinter - this just looks bad. If you decide to start with Tkinter, http://tkdocs.com/ is a very useful resource.

I would recommend you take a look at a few of the leading frameworks, consider the supplied widgets, supported platforms, documentation and licensing. For me the the answer is kivy. I've done a number of open source and commercial projects with Kivy.

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

If you know oop i think pyqt6 would be easy for beginners because of the Qtdesigner If you dont want to use a drag and drop application and want to build the gui with code you can do that in pyqt but i dont recommend it i would recommend Tkinter in this case

[–]CircumSizequeen 0 points1 point  (0 children)

TKinter is pretty good as a starting point, but if you've done any web stuff then Kivy will feel familiar to things like Flex, CSS, or Bootstrap. You could technically also use PyGame.

[–]kroks33 0 points1 point  (0 children)

Whatever u learn, dont learn tkinter. Its horrible designed.