I was thinking of writing a desktop application for Windows/Linux/OS-X. One requirement of the GUI is that I need to be able to style it very accurately.
That is: I want to be able to color all elements the way I want to, position elements pixel precise, have borders on single sides of an element, etc. Very similar to the possibilities I have when I'm writing an Web application with a UI in HTML + CSS.
I have been looking around, but it seems very difficult to find something like this (+ documentation!).
GTK is wonderfully mature, cross-platform and has good C documentation. It has bindings for many languages, including Python 3, which is my language of choice right now. And even though you can style it using CSS, how and what you can style is very much limited.
XUL and python have some third party bindings, but they don't look to, how should I phrase it, well tested.
Then I have the option of having a locally running python-web-server and the app running in a browser. But I'm not sure whether I should pursue this or if it's just the Web developer inside of me not wanting to conform.
Basically I want to be able to build a beautiful desktop application. Why does that seem so difficult?
1–PyQt5. PyQt5 is a very well-known GUI framework used by both Python coders and UI designers. One of its components, the PyQt package, is built around the Qt framework, which is a leading cross-platform GUI design tool for just about any kind of application.
Python Tkinter Tkinter is the standard built-in GUI library for Python, and, with over 41,000 stars on GitHub, it's the most popular Python GUI framework. It's a fast and easy-to-use Python GUI library, making it the go-to library for building a Python GUI application.
There are many graphical user interface (GUI) toolkits that you can use with the Python programming language. The big three are Tkinter, wxPython, and PyQt. Each of these toolkits will work with Windows, macOS, and Linux, with PyQt having the additional capability of working on mobile.
GUI Programming in Python. Python has a huge number of GUI frameworks (or toolkits) available for it, from TkInter (traditionally bundled with Python, using Tk) to a number of other cross-platform solutions, as well as bindings to platform-specific (also known as "native") technologies.
OS-X has a very distinct and different look and feel to Windows, and an application with homebrew widgets is going to feel different, and usually comes off as odd or even ugly. In and around the time for Windows 98 every company made there own app with their own look and feel. One for the modem, one for the printer, one for the graphics settings and so forth. They may not have looked bad in their own right, but the overall impression when you have a couple of those, mixed with the native look and feel is just ugly.
So, yes, it's the web developer in you wanting this. Web is a very different animal from native L&F, people have been used to differences, incoherence, glitches, high latency and ugliness from the start. Flames and background music. My advice is: don't go there on a native application. Then you might as well build something on the web.
Native applications are used mainly to achieve a goal, not for their looks. Do what you want to do speedy (speed is the most important feature) and without any hassle, tone down the obscure looks and you'll have a great native app!
Apart from GTK, you may also consider using these toolkits:
There are others, but none that I know of and can recommend.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With