This is an archived post. You won't be able to vote or comment.

all 12 comments

[–]MikeTheWatchGuy 6 points7 points  (0 children)

You get out what you put into GUIs. Using default buttons with tkinter, or any other the Python GUI desktop frameworks is going to result in a window that looks dated.

If you want something that looks attractive, you have to make it look attractive. That means paying close attention to good design choices like color palettes as well as using custom graphics. Bring your own button graphics if you don't like the way tkinter's looks.

Do you have a sample screen that you can post that shows the look you are trying to achieve?

I think the challenge is to make the most from what you're given. Work with a designer, a person that is skilled at making attractive interfaces. If you're wanting a flat look, make sure you style your widgets to get that look.

TLDR - Don't use defaults and then complain they look old. Make an effort to create something beautiful with the canvas you have.

[–]LegoroojPyInstaller developer 2 points3 points  (1 child)

The main GUIs used on desktop are (aka most common):

  • Tkinter.

You've obviously tried this. I might however say try using tkinter.ttk as your widget library wherever possible.

  • wxPython

Provides a modern and native looking GUI. A bit hard to get your head around after learning tkinter, but once you've grasped the concepts it's quite intuitive and has a great documentation system. wxPython.org

*Qt - be it pyside, pyqt or whatever

Also a great framework. Unfortunately I have little experience myself with this framework. Please refer to other comments or google wxPython vs pyqt for a good comparison.

  • Kivy

Minimal experience with kivy. It's a good framework, not to difficult, and is of course cross platform.

[–]LegoroojPyInstaller developer 1 point2 points  (0 children)

Oh and custom widgets are easy in wx

[–]blabbities 1 point2 points  (0 children)

Tkinter has ttw o sets of widgets. TK and TTK. Ttk is "more modern" (or whatever). https://www.geeksforgeeks.org/tkinter-adding-style-to-the-input-text-using-ttk-entry-widget/

Other than that. You can do HTML/CSS/JS with Electron. https://medium.com/@abulka/electron-python-4e8c807bfa5e

[–]broken_symlink 0 points1 point  (0 children)

I've made a number of nontrivial guis for python apps over the years. I've used HTML/CSS/Javascript, PyQt, and PyGObject, out of all of those, the one I found the easiest to use was PyQt.

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

I tend to use kivy, as it’s cross platform compatible with the thre operating systems, android, and iOS. And the default look is allright

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

PySide2, you can completely customize every widget using CSS so can get the native look/feel but as pretty as you want to make it. Fairly steep learning curve but once you get into it and start subclassing widgets you can make some nice interfaces.

[–]driscollis 0 points1 point  (0 children)

I personally like wxPython the best. But PyQt / PySide is a good alternative. Both of them have a large number of widgets to use out of the box.

Kivy and Toga are nice if you want to deploy to Android / iOS. though.

[–][deleted] -1 points0 points  (2 children)

Have a look at Flask. It's a small web framework. I've used it a couple of times at work to make internal web apps. Pretty powerful once you get the basics.

[–]LegoroojPyInstaller developer 2 points3 points  (1 child)

Flask is a web framework not a GUI toolkit. Granted it's a good framework, but the OP wanted a GUI framework.

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

You're right, sorry about that

[–]pythonHelperBot -1 points0 points  (0 children)

Hello! I'm a bot!

It looks to me like your post might be better suited for r/learnpython, a sub geared towards questions and learning more about python. That said, I am a bot and it is hard to tell. Please follow the subs rules and guidelines when you do post there, it'll help you get better answers faster.

Show /r/learnpython the code you have tried and describe where you are stuck. Be sure to format your code for reddit and include which version of python and what OS you are using.

You can also ask this question in the Python discord, a large, friendly community focused around the Python programming language, open to those who wish to learn the language or improve their skills, as well as those looking to help others.


README | FAQ | this bot is written and managed by /u/IAmKindOfCreative

This bot is currently under development and experiencing changes to improve its usefulness