2012年12月11日 星期二

PyQt4 教學1

我們先簡單的載入sys及pyqt4介面相關模組,然後寫個hello world標籤讓它顯示 
# -*- coding: UTF8 -*-
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *

app = QApplication(sys.argv)

hello = QLabel('Hello World')
hello.show()

sys.exit(app.exec_()) 



pyqt4 習慣先載入一個程式主循環 app = QApplication(sys.argv)   如無這行,程式是不會有所反應的 所以這個小程式主要就是: 讓hello 等於 QLabel 然後讓程式顯示於視窗 hello = QLabel('Hello World') hello.show() 簡單直覺   所以GUI介面我選擇了PyQt4 smart more smart &nbsp 再來我們將程式直接轉成物件導向寫法! # -*- coding: UTF8 -*- import sys from PyQt4.QtGui import * from PyQt4.QtCore import * app = QApplication(sys.argv) class Hello(QWidget): def __init__(self, parent=None): super(self.__class__, self).__init__(parent) hello = QLabel('Hello World', self) hello = Hello() hello.show() sys.exit(app.exec_()) 先建立個class並繼承了QWidget hello = QLabel('Hello World', self) 語法裡多個參數self, 主要是讓hello丟向QWidget self等同代表了QWidget本身 super(self.__class__, self).__init__(parent)   super算是python較特殊的東西,在此我只簡單的講, 在此使用super主要方便繼承 QWidget的__init__初始化 super(self.__class__, self).__init__(parent)跟使用 super(Hello, self).__init__(parent)是相同作用 但當class Hello(QWidget): 改成 class World(QWidget): 時 super(Hello, self).__init__(parent)一樣得跟著改 super(World, self).__init__(parent)   因此使用self.__class__會較方便點 如對super相當迷惑,請網路查詢一下資料, super非三言兩語能解說清楚! 最後 sys.exit(app.exec_()) 用於讓hello主程式關閉時,讓 app 也跟著關閉

沒有留言:

張貼留言