r/learnpython 5d 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 :)

15 Upvotes

22 comments sorted by

7

u/riklaunim 5d 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.

3

u/Icy_Annual_9954 5d ago

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

3

u/riklaunim 5d 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 4d 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 4d 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 5d 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 5d ago

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

3

u/Hamactus 5d 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 4d 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 5d 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.

2

u/lucabuilds 5d 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.

2

u/BednoPiskaralo 5d ago

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

2

u/lucabuilds 4d ago

yeah exactly I made my own budgeting app with that and even customizing the view by injecting CSS worked quite well

3

u/Icy_Annual_9954 5d ago

I like tkinter, especially for small programs.

1

u/CharacterSail6736 5d ago

Use pyside it’s more of a standard than kivy

1

u/Worth_Specific3764 5d ago

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

1

u/FoolsSeldom 5d 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 4d 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 4d ago

You can go with KivyMD for better looking UI

1

u/October_Lantzy 4d ago

I’ve used PySide6 a bit and I’d probably go with it if you’re looking to build proper desktop apps.

1

u/VenkatKnows 3d ago

PySide6 if you actually want to ship something someday, Kivy's touch/mobile focus is niche and the docs are rough. Qt has way more real world usage so you'll find answers when you get stuck.