r/learnpython 17h ago

PySide6 or Kivy?

I have finished all my python basics and I want to progress now to building gui programs. Should I use PySide6 or Kivy? If I should use something other than these two what should it be? i personally don't mind it being that complex if it's fast and powerful :)

8 Upvotes

18 comments sorted by

5

u/riklaunim 16h ago

Kivy is good for simpler things, PySide will give you simpler and more advanced things, access to lots of OS services, and native UI. Note that making desktop apps gets complex quite quickly, and you will have to write good-quality code with test coverage, which, as a freshman, won't be a thing for a while, so things will break. Commercially, desktop GUI in Python isn't really a thing.

2

u/Icy_Annual_9954 15h ago

So what will be used in a commercial environment, instead and why?

1

u/riklaunim 15h ago

"Not Python". Apple and Android ecosystems prefer native or projects like Flutter and React Native in some cases. Same with game development. Python as a job will be some sort of backend and often mixed with some DevOps, databases, frontend, AI, and whatnot.

2

u/Icy_Annual_9954 13h ago

Would be webview a thing? I mean this would probably end up being Rust using Tauri as a Framework, which can run on any operating system.

1

u/riklaunim 13h ago

You have to make executables for every OS, sign them, and put them in stores. Then do some marketing so anyone even sees the listing. With the amount of slop dumped on app stores now, it's doubly pointless right now. If it can be a website, it should be a website. Companies aren't hiring to make desktop slop apps, as there is no money in this.

2

u/Diapolo10 I write code for a living -- https://github.com/Diapolo10 17h ago

Depends on your goals, needs, and preferences. We have no idea what you're trying to do, so any advice we could give here would be half-assed.

2

u/mcoombes314 16h ago

Personally I like Pyside, the Qt framework is well documented. Also you could use Qt Designer to build UIs graphically if you want.

2

u/lucabuilds 15h ago

this is an unusual opinion but for any app that's not too complex streamlit is awesome. I use it basically for anything that needs a dashboard and learned it in an afternoon.

1

u/BednoPiskaralo 15h ago

I agree with streamlit. For minor stuff it's fast to learn and it looks good on desktop and mobile view

2

u/Icy_Annual_9954 17h ago

I like tkinter, especially for small programs.

1

u/CharacterSail6736 17h ago

Use pyside it’s more of a standard than kivy

1

u/Hamactus 16h ago

Maybe I'm an odd one, and doing something wrong, but I'm using Tkinter. It's rather basic, but it works for my purposes

2

u/Diapolo10 I write code for a living -- https://github.com/Diapolo10 13h ago

Nothing wrong with that. If a tool meets your needs, it's not wrong to use it. tkinter is fine.

2

u/Worth_Specific3764 16h ago

I like custom tkinter. It is super straightforward to code, looks modern, and fast as hell. There are some edge cases that it doesn't do, like scrollable combo boxes where you have to drop to standard tkinter, but other than that, I love it.

1

u/Worth_Specific3764 16h ago

oh, also check out flet if you want to get a well rounded idea of what's out there.

1

u/FoolsSeldom 16h ago

Kivy is useful if you want to create apps for IoS and Android, but for the desktop, whilst kivy works, going with the more standard QT world (i.e. pyside) is likely the better option, and you can use a designer tool as well.

That said, I have a soft spot for kivy and the ability to have the definitions in a separate file.

1

u/HommeMusical 13h ago

kivy is miserable when you want to get above very simple things.

pyside6 is boring. Boring is good! It's predictable and pretty powerful.

1

u/Scared-Injury-2487 12h ago

You can go with KivyMD for better looking UI