31

I want to use Qt for developing Ubuntu desktop, phone and tablet applications but I don't want to learn a new programming language (C++, JavaScript). Is it possible to write Qt application in Python utilizing Qt-Creator as IDE?

14

Yes, Qt-Creator is a C++ IDE, with little support for other languages but since version 2.8.0 a quite basic python support has been added.

That said you can use Qt-Designer (the form building tool), Qt-Translator (the translate tool), etc... easily with python.

There are two Qt-Python bindings right now, the GPL/Commercial dual licensed PyQt, and the LGPL PySide. I have used PyQt for a long time and I'm a happy user, I also have tried PySide but it looks less mature to me. If your license requirements allow you I'd go for PyQt.

1
18

Just desing your interface in Qt-Designer and convert it to python file executing pyuic4.

Eg:

pyuic4 editorFrame.ui -o editorFrame.py

then you can import it from your main class, in this case i'm using a QMainWindow:

import sys
from PyQt4 import QtGui
from editorFrame import Ui_MainWindow

class Editor(QtGui.QMainWindow):

    def __init__(self):
        super(Editor, self).__init__()
        self.ui=Ui_MainWindow()
        self.ui.setupUi(self)
        self.show()

def main():
    app = QtGui.QApplication(sys.argv)
    ex = Editor()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()
1
  • 1
    Just in case someone need this info, to install pyuic4: sudo apt-get install pyqt4-dev-tools qt4-designer – Tshilidzi Mudau Jan 2 '16 at 8:58
8

With the release of Qt Creator 2.8 things are changing. It now natively supports Python for code editing and there are few Python-based features.

From Qt Creator 2.8 release announcement:

An editor specific for Python was added, with highlighting and indentation, and a Python class wizard

2

You may want to follow this tutorial series though : Developing Cross Platform Application using Qt, PyQt and PySide : GUI Application Development - Part 5 of 5. It completely discuss Qt dev using C++, PyQt and PySide

1
  • The link of the tutorial is not valid any more. – Étienne Jul 2 '19 at 9:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.