Як використовувати Qt Creator з Python?


32

Я хочу використовувати Qt для розробки програм Ubuntu для настільних ПК, телефонів і планшетів, але я не хочу вивчати нову мову програмування (C ++, JavaScript). Чи можливо написати додаток Qt на Python, використовуючи Qt-Creator як IDE?

Відповіді:


14

Так, Qt-Creator - це C ++ IDE з малою підтримкою інших мов, але з версії 2.8.0 додано досить базову підтримку python.

Це означає, що ви можете використовувати Qt-Designer (інструмент побудови форми), Qt-Translator (інструмент перекладу) тощо. Легко з python.

Зараз є два прив'язки Qt-Python - подвійний ліцензійний PyQt GPL / Commercial та LGPL PySide . Я використовую PyQt протягом тривалого часу, і я щасливий користувач, я також спробував PySide, але він виглядає для мене менш зрілим. Якщо ваші ліцензійні вимоги дозволяють, я б пішов на PyQt.



18

Просто створити свій інтерфейс у Qt-Designer та перетворити його у файл python, який виконує pyuic4 .

Наприклад:

pyuic4 editorFrame.ui -o editorFrame.py

тоді ви можете імпортувати його з вашого основного класу, в цьому випадку я використовую 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
На всякий випадок, коли комусь потрібна ця інформація, щоб встановити pyuic4:sudo apt-get install pyqt4-dev-tools qt4-designer
Tshilidzi Mudau

8

З виходом Qt Creator 2.8 все змінюється. Тепер він в основному підтримує Python для редагування коду, і є кілька функцій на основі Python.

З оголошення про випуск Qt Creator 2.8 :

Доданий редактор, специфічний для Python, із виділенням та відступом та майстер класу Python


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.