http://[blog.csdn.net/pipisorry/article/details/37884955](http://blog.csdn.net/pipisorry/article/details/37884955)
pythonqt編寫窗口示例
~~~
from PyQt5.QtWidgets import QWidget, QApplication, QLabel
import sys
class MyWindow(QWidget):
def __init__(self):
super().__init__()
def show_mywindow():
app = QApplication(sys.argv)
mywindows = MyWindow()
QLabel(mywindows).setText("<p style='color: red; margin-left: 20px'><b>hell world</b></p>")
mywindows.show()
# app.exec_()
sys.exit(app.exec_())
show_mywindow()
~~~
**Note**:
1. QtWidget是通用窗口類
2. super(mywindow,self).__init__() : 這里我們要重載一下,mywindows同時也包含了QtWidgets.QWidget的預加載項 ;__init__其實是構造函數,也就是類被創建后就會預先加載的項目, (self)是pyqt類方法必須要有的,代表自己,相當于java,c++中的this
3. app?=?QtWidgets.QApplication(sys.argv)?#pyqt窗口必須在QApplication方法中使用, #要不然會報錯?QWidget:?Must?construct?a?QApplication?before?a?QWidget或者Process finished with exit code 1. 類中__init__函數作用Initializes the window system and constructs an application object with argc command line arguments in argv.
4.QLabel(mywindows)在窗口中綁定label; setText:設置label顯示的內容,并且qt支持html標簽。注意label也可以這樣使用:label=QtWidgets.QLabel("hell?world");label.show()?
5. show()是QWidget的方法,用來顯示窗口的!
6. app.exec_()啟動事件循環,否則窗口只會一閃而過。 sys.exit([arg])程序中間的退出,arg=0為正常退出。exit退出條件(參數)是app.exec_()也就是整個窗口關閉。消息結束的時候,進程結束,并返回0,接著調用sys.exit(0)退出程序。
7. 可以將顯示mywindows的方法show_mywindow寫在第二個文件中,達到邏輯與界面分離的效果。
**過程總結**:通過繼承QtWidgets.QWidget來定義自己的窗口,然后生成一個對象(實例化),再調用QWidget的show()方法來顯示這個窗口。
from:[http://blog.csdn.net/pipisorry/article/details/37884955](http://blog.csdn.net/pipisorry/article/details/37884955)
ref:[pyqt5 python Gui入門教程](http://wenku.baidu.com/view/5566aac2dd88d0d233d46ae1.html)