wiki:wade/QT

Version 16 (modified by wade, 13 years ago) (diff)

--

note

  • QT creater:QT 的 IDE。整合了原本 QT designed 所有的設計功能。
  • PyQT:將 python 與 qt bind 在一起,支援 python 2、3。
  • 4.5 版後適用 LGPL licence。
  • PySide: LGBL licence。 PyQt 不是。
  • API Reference:http://doc.trolltech.com/latest/index.html
  • C:/QtSDK/readme/index.html
  • widget:如!QLineEdit、!QPushButton。
  • layout:用來分配 widget 的排列方式。

PySide

  1. 手冊:http://developer.qt.nokia.com/wiki/PySideDocumentation/
  2. 環境:
    • QT SDK
    • Python
    • PySide 1.07
  3. 測試:
    import PySide
    print PySide.__version__
    
    結果:1.0.7
  1. 第一個 Hello World GUI 程式:
    # Import PySide classes
    import sys
    from PySide.QtCore import *
    from PySide.QtGui import *
     
     
    # Create a Qt application
    app = QApplication(sys.argv)
    # Create a Label and show it
    label = QLabel("Hello World")
    label.show()
    # Enter Qt application main loop
    app.exec_()
    sys.exit()
    
    你也可以在 QLabel 中加入 html 語法
    label = QLabel("<font color=red size=40>Hello World</font>")
    
  1. 第二個程式,加入connect與程式連結:
    #!/usr/bin/python
    # 載入 PySide classes
    import sys
    from PySide.QtCore import *
    from PySide.QtGui import *
    
    # 定義一個 say_hello 的 subroutine,這個 subroutine 會印出 Hellow World
    def say_hello():
        print 'Hellow World'
    
    # 建立 Qt 應用程式
    app = QApplication(sys.argv)
    # 新增一個 button
    button = QPushButton('test')
    # 將 button 與 say_hello 連結
    button.clicked.connect(say_hello)
    # 讓 button 顯示出來
    button.show()
    # 執行 Qt 應用程式的 main loop
    app.exec_()
    sys.exit()
    
  1. 第三個程式:產生一個 dialog 應用程式
    #!/usr/bin/python
     
    # Import PySide classes
    import sys
    from PySide.QtCore import *
    from PySide.QtGui import *
     
     
    # print hello
    def say_hello():
        print 'hi.. wade'
        
    class Form(QDialog):
        def __init__(self, parent=None):
            super(Form, self).__init__(parent)
            self.setWindowTitle('My form')
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        form = Form()
        form.show()
        sys.exit(app.exec_())
    

Reference