DEV Community

natamacm
natamacm

Posted on

Should I use Kivy or PyQT for GUI?

Qt is a world-class, powerhouse GUI toolkit. Kivy is the new kid on the block. Kivy is beginner friendly and cross-platform, but so is PyQt. So what to choose?

On the desktop, PyQt is better because you can get a near-native look and feel easy and you have a simple gui designer.

But on mobile, it makes more sense to go with Kivy. Kivy is more oriented towards mobile interfaces.

python kivy

PyQt is more oriented towards desktop software.

pyqt

When it comes to licensing, PyQt requires payment for commercial applications. Kivy on the other hand is free for all types of applications.

Kivy is a python UI framework not a wrappper around an UI library. Pyqt on the other hand is a wrapper around the QT UI library. But PyQt is not only a UI library, it can also do networking, databases and other things.

PyQt is a mature module for building GUIs and other things, it is continuously developed and has been around for a long time. That means it's easy to find developers that have experience with PyQt/Qt.

Learning resources

So how do you get started with building GUI applications with Python?
First you should know Python programming itself. Then you can learn either GUI framework.

Here are some useful links for PyQt

For Kivy, these learning resources are available:

Top comments (2)

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt • Edited

I really like QtQuick BTW. You should have a look at Qt.

Then again, the strength of Kivy is its syntax and frontend-backend decoupling. It has its own syntax, instead of only Python.

These two are in Qt Quick, if I remember correctly. -- github.com/patarapolw/HanziSRS github.com/patarapolw/HanziMindMap

You can also use Qt Quick on Mobile, but I don't really know how. Maybe you need the proper Qt Creator...

Collapse
 
bykof profile image
Michael Bykovski

PyQT has a really hard learning curve, but the Qt Framework is the most powerful and oldest one.
Kivy is nice if you want to have fast results and a short learning curve but you will be also limited in functionality.