Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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?

share|improve this question
add comment

4 Answers

up vote 4 down vote accepted

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.

share|improve this answer
    
recently added codereview.qt-project.org/#q,status:open,n,z –  Mohsen Pahlevanzadeh Aug 30 '13 at 2:01
add comment

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

share|improve this answer
add comment

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()
share|improve this answer
add comment

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

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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