จะใช้ Qt Creator กับ Python อย่างไร?


32

ฉันต้องการใช้ Qt เพื่อพัฒนาโปรแกรมบนเดสก์ท็อป Ubuntu โทรศัพท์และแท็บเล็ต แต่ฉันไม่ต้องการเรียนรู้ภาษาการเขียนโปรแกรมใหม่ (C ++, JavaScript) เป็นไปได้ไหมที่จะเขียนแอปพลิเคชั่น Qt ใน Python ใช้ Qt-Creator เป็น IDE?

คำตอบ:


14

ใช่ Qt-Creator เป็น C ++ IDE พร้อมการสนับสนุนเล็กน้อยสำหรับภาษาอื่น แต่เนื่องจากเวอร์ชัน 2.8.0 มีการเพิ่มการสนับสนุนหลามแบบพื้นฐานค่อนข้างมาก

ที่กล่าวว่าคุณสามารถใช้ Qt-Designer (เครื่องมือสร้างแบบฟอร์ม), เครื่องมือแปล Qt (เครื่องมือแปลภาษา) ฯลฯ ได้อย่างง่ายดายด้วย python

มีสองผูก Qt หลามอยู่ในขณะนี้, จีพี / อาคารพาณิชย์คู่ได้รับใบอนุญาตPyQtและแอลจีPySide ฉันใช้ PyQt มาเป็นเวลานานและฉันเป็นผู้ใช้ที่มีความสุขฉันได้ลอง PySide แล้ว แต่มันก็ดูแก่กว่าฉันน้อยลง หากข้อกำหนดด้านลิขสิทธิ์ของคุณอนุญาตให้คุณไปที่ PyQt



18

เพียงแค่ดีไซน์อินเตอร์เฟซของคุณใน Qt-ออกแบบและแปลงเป็นไฟล์หลามดำเนิน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


2

คุณอาจต้องการที่จะปฏิบัติตามชุดนี้กวดวิชาแม้ว่า: การพัฒนาแอพลิเคชันข้ามแพลตฟอร์มใช้ Qt, PyQt และ PySide: GUI การพัฒนา Application - ส่วนที่ 5 จาก 5 มันหารือ Qt dev อย่างสมบูรณ์โดยใช้ C ++, PyQt และ PySide


ลิงก์ของบทช่วยสอนไม่ถูกต้องอีกต่อไป
Étienne
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.