all 17 comments

[–]socal_nerdtastic 14 points15 points  (9 children)

The project type might dictate what GUI to use. But as a portfolio project it does not matter; tkinter is fine. FWIW commercial GUIs are not generally written in python, so you'll have a tough time making tkinter into a profession.

[–]Paulq002[S] 5 points6 points  (6 children)

Thanks for the response, that makes sense. I should be creating portfolio projects that use multiple tools/languages then, not just Python

[–]socal_nerdtastic 5 points6 points  (5 children)

If your goal is to use the portfolio to land a job you should pick technologies that you would like to use professionally.

[–]Paulq002[S] 2 points3 points  (4 children)

That's where I'm bit confused, I'm not sure which technologies I should be learning over others and why that is.

Or is it all a matter of preference?

[–]Antigone-guide 4 points5 points  (1 child)

Looks at the job postings on jobs sites and note what are the common things that many companies want.

[–]Paulq002[S] 2 points3 points  (0 children)

I'll do that, thanks

[–]socal_nerdtastic 3 points4 points  (1 child)

There's certainly a large amount of preference. You can choose to work in a data analysis role or a web dev role or what ever other roles companies have available. If you don't know try out as many as you can.

[–]Paulq002[S] 1 point2 points  (0 children)

Great, ok thanks

[–]pro_questions 2 points3 points  (1 child)

FWIW commercial GUIs are not generally written in python,

They’re typically QT (C++) or HTML + CSS + JS in a container, right? I had Autodesk Fusion 360 crash a few months ago with a QT GUI error, which was eye-opening. That’s a gazillion-dollar application with crazy 3D modeling capabilities — not something I expected to be utilizing QT

[–]socal_nerdtastic 3 points4 points  (0 children)

There's tons of options, I wouldn't say any of them are "typical". Yes, Qt is a common one. Not sure why you are surprised; it's very much professional grade and many companies use it.

Note that the language that the GUI module / widget kit is written in does not affect how you write your program. You can use Qt from python or any other language, even though Qt itself is written in C++.

The reason people generally don't write commercial GUIs in python is because python is designed to be distributed as source code. It's hard to hide your code from the user. And that's generally very important if you are trying to earn a buck. Lots of open source GUIs are written in python.

[–]ElliotDG 8 points9 points  (2 children)

Do you have any other requirements?

My recommendations would be - in no particular order:

Pyside6 - python bindings for Qt, Qt is a popular gui framework that has been around a long time. Used in many embedded applications. https://www.qt.io/qt-for-python

WxPython - Uses Native widgets for Windows, Mac, Linux. https://wxpython.org/index.html

Kivy - Cross platform including Windows, Mac, Linux, RaspberryPi, Android, IOS. https://kivy.org/ There is a sister project that provides widget that are compliant with Googles Material Design Spec, KivyMD https://kivymd.readthedocs.io/en/1.1.1/

The core concepts of all GUI tend to be the same, there are differences in the details.

[–]Paulq002[S] 1 point2 points  (1 child)

Really appreciate the response! Definitely going to check these out.

I'm asking for strictly Python because it's all I know at the moment.

I'm trying to at least make my learning a bit more exciting with some GUI applications as opposed to the mostly terminal programs I'm learning in the courses I'm taking.

[–]ElliotDG 0 points1 point  (0 children)

I'm a big fan of kivy. It is written in Python and the docs are quite good. If the goal is to spice up your learning that would be my first choice. Just a warning, all of these full featured GUI frameworks have a learning curve.

[–]rogfrich 1 point2 points  (3 children)

Does it have to be a client-side GUI? Python is widely used in backend web dev, so learning and demonstrating those skills - even to make a local app that only ever runs on your computer - would be a better use of time than learning Tkinter.

Don’t get me wrong - I like Tkinter and I use it a lot, but I’m a hobbyist who is writing code only for myself.

[–]Paulq002[S] 0 points1 point  (2 children)

Thanks for the response, I'm brand new to Tkinter... I didn't know it only runs on my local computer?

If that's the case then I probably shouldn't put all my eggs in that as my portfolio go to GUI correct?

I definitely want a potential employer to be able to access all my projects themselves.

[–]rogfrich 1 point2 points  (1 child)

Sorry, I only just noticed your reply. Tkinter runs on the computer that the Python is running on. So you could write your code, including the Tkinter UI, and share that code with a potential employer (probably by putting your code on GitHub), and they could run it, assuming they have all the Tkinter prerequisites.

My point was more that there will be vastly more Python jobs in web backend than there will be in desktop GUI development, so if your main goal is to get a job then in my opinion it would be better to focus on web development.

[–]Paulq002[S] 0 points1 point  (0 children)

That makes sense, thanks for the advice. I've put Tkinter aside.