Come usare Qt Creator con Python?


32

Voglio usare Qt per sviluppare applicazioni desktop, telefoniche e tablet Ubuntu ma non voglio imparare un nuovo linguaggio di programmazione (C ++, JavaScript). È possibile scrivere l'applicazione Qt in Python utilizzando Qt-Creator come IDE?

Risposte:


14

Sì, Qt-Creator è un IDE C ++, con scarso supporto per altre lingue ma dalla versione 2.8.0 è stato aggiunto un supporto python abbastanza semplice.

Detto questo, puoi usare facilmente Qt-Designer (lo strumento per la creazione di moduli), Qt-Translator (lo strumento di traduzione), ecc ... con Python.

Esistono due attacchi Qt-Python in questo momento, il doppio PyQt con licenza GPL / Commercial e il PySide LGPL . Ho usato PyQt per molto tempo e sono un utente felice, ho anche provato PySide ma mi sembra meno maturo. Se i requisiti di licenza ti consentono, sceglierei PyQt.



18

Desidera semplicemente la tua interfaccia in Qt-Designer e convertirla in file Python eseguendo pyuic4 .

Per esempio:

pyuic4 editorFrame.ui -o editorFrame.py

quindi puoi importarlo dalla tua classe principale, in questo caso sto usando una 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
Nel caso in cui qualcuno abbia bisogno di queste informazioni, per installare pyuic4:sudo apt-get install pyqt4-dev-tools qt4-designer
Tshilidzi Mudau

8

Con il rilascio di Qt Creator 2.8 le cose stanno cambiando. Ora supporta nativamente Python per la modifica del codice e ci sono alcune funzionalità basate su Python.

Dall'annuncio della versione Qt Creator 2.8 :

È stato aggiunto un editor specifico per Python, con evidenziazione e rientro, e una procedura guidata di classe Python


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.