20

I am putting together a few programs, and it's about time to start making GUI's for some of them. The code is currently written in Python 3.3.

I have researched a few GUI's for Python, namely Tkinter, wxPython and PyGTK. Everything I am finding seems to only create GUI's that look fairly archaic. I have created a couple of example GUI's, and they all work, they just look very Windows 95.

An example of what I am finding/creating: http://python.6.x6.nabble.com/file/n4545517/MLDataAnalyzer5.png

An example of what I want-ish: http://images.six.betanews.com/screenshots/1237236321-1.jpg

Is it simply an advanced knowledge of how the GUI's work, or are there just GUI modules more suited for "modern" looking GUI's?

If it is advanced knowledge of how the GUI's work, are there some tutorials out there for how to make GUI's look more "modern".

Thanks in advance.

7
  • Most toolkits match your system theme, so the UIs you make with them will look like "regular" programs. Commented Jul 4, 2013 at 8:22
  • 4
    The thing is, I am running Windows 7 and most GUI's look nice and modern, but when I run my self-made GUI's from my Python code they come out Windows 95 style. Commented Jul 4, 2013 at 8:28
  • There are dozens of Python UI toolkits out there. Which one are you using? Commented Jul 4, 2013 at 8:29
  • I have made quick examples in tkinter, wxPython and PyGTK Commented Jul 4, 2013 at 8:36
  • 1
    wxPython UIs will fall back to the old style if it is not able to load the new(ish) themed common controls DLL. There really shouldn't be any problem doing that anymore, although I suppose that if you have an old wxPython or perhaps a custom built Python then that may be what you are seeing. Commented Jul 5, 2013 at 17:56

4 Answers 4

15

Tkinter comes with a set of widgets called "themed tk", provided by the ttk module. It provides more modern-looking alternatives to some of the core widgets such as buttons and labels, and it also has a few new widgets such as a notebook and tree.

Sign up to request clarification or add additional context in comments.

4 Comments

Just tried this to retrofit an awful looking program of mine and it works great
Note the term, "some". Dialog boxes and file open/save dialogs, for instance, still don't look native.
@JeannePindar: on windows and OSX, the dialogs use the native dialog boxes provided by the OS.
Regardless of what they are provided by, they don't LOOK native. See stackoverflow.com/questions/33792008/…
2

After a lot of research I've decided to use the Qt bindings library for Python called PyQt5 (http://www.riverbankcomputing.com/software/pyqt/download5). It's quite easy to implement and has tons of documentation. The interface elements (called widgets in Qt) look exactly like the ones in the host operating system: if you run the program in Windows 95, they'll look like that, same for Windows 7, and even MacOS. I find Qt extremely powerful. I'm developing a Python/MySQL application and the QtSql module helps a lot in the development with creating tables.

Comments

2

You can use htmlPy. So you can create GUI's with css html js with good looks.

Comments

1

QT is a good choice in many cases, but sometimes you need much faster response time, or native support of OpenGL(ES), or just another license. There are a lot of alternatives:

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.