Bagaimana cara menggunakan Qt Creator dengan Python?


32

Saya ingin menggunakan Qt untuk mengembangkan aplikasi desktop, ponsel dan tablet Ubuntu, tetapi saya tidak ingin belajar bahasa pemrograman baru (C ++, JavaScript). Apakah mungkin untuk menulis aplikasi Qt dengan Python menggunakan Qt-Creator sebagai IDE?

Jawaban:


14

Ya, Qt-Creator adalah C ++ IDE, dengan sedikit dukungan untuk bahasa lain, tetapi karena versi 2.8.0 dukungan python yang cukup mendasar telah ditambahkan.

Yang mengatakan Anda dapat menggunakan Qt-Designer (alat pembuat formulir), Qt-Translator (alat terjemahan), dll ... dengan mudah dengan python.

Ada dua binding Qt-Python sekarang, GQ / Komersial dual berlisensi PyQt , dan LGPL PySide . Saya telah menggunakan PyQt untuk waktu yang lama dan saya pengguna yang bahagia, saya juga telah mencoba PySide tetapi terlihat kurang matang bagi saya. Jika persyaratan lisensi Anda memungkinkan Anda, saya akan menggunakan PyQt.



18

Hanya desing antarmuka Anda di Qt-Designer dan mengubahnya menjadi file python mengeksekusi pyuic4 .

Misalnya:

pyuic4 editorFrame.ui -o editorFrame.py

maka Anda dapat mengimpornya dari kelas utama Anda, dalam hal ini saya menggunakan 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
Untuk berjaga-jaga jika seseorang membutuhkan info ini, untuk menginstal pyuic4:sudo apt-get install pyqt4-dev-tools qt4-designer
Tshilidzi Mudau

8

Dengan dirilisnya Qt Creator 2.8, segalanya berubah. Sekarang secara asli mendukung Python untuk mengedit kode dan ada beberapa fitur berbasis Python.

Dari pengumuman rilis Qt Creator 2.8 :

Editor khusus untuk Python ditambahkan, dengan penyorotan dan lekukan, dan penyihir kelas Python


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.