GitHub連接:
本專欄所有源代碼的GitHub直通車
關于pyqt5的特點以及和QT5的聯系和區別就不講了,只有專業開發的大佬可能才會說的清楚一點
首先需要先下載PYQT5模塊
用的是鏡像網下載的,網速不好的時候需要在后面設定一下timeout,不然很有可能下載失敗(因為包比較大)
pip install pyqt5 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
代碼
from PyQt5 import QtWidgets##從 PyQt 庫匯入 QtWidget 通用視窗類
import sys
class mywindow(QtWidgets.QWidget):#繼承 QtWidgets.QWidget 類方法
def __init__(self):
super(mywindow,self).__init__()
def maingui():
app = QtWidgets.QApplication(sys.argv)##pyqt 視窗必須在 QApplication 方法中使用
window = mywindow()#實體化物件
window.show()#顯示視窗
sys.exit(app.exec_())#啟動事件回圈
if __name__ == "__main__":
print("haoming Hu welcome!")
maingui()
我這里是直接使用了常用的面向物件編程的方式,其實在學習QT的時候,最先讓人迷惑的一個問題就是QT的類,因為QT的類實在是太多了,但是也是有規律的,而且還要理解這些類之間的繼承關系以及繼承方式,很多時候都是使用到了多型,
#從 PyQt 庫匯入 QtWidget 通用視窗類和sys模塊
from PyQt5 import QtWidgets
import sys
maingui()這個可以放在__main__下面執行,我習慣是把它寫成一個函式的形式,到現在為止,qt5的編程方式和tkinter都非常的相似,
接下來是重新寫一個類,類里面需要繼承QtWidgets.QWidge類方法,在自己新建類的__init__函式中需要進行初始化,以前學的super,
這個的__init__函式相當于C++類里面的建構式,也就是說當我用這個類去實體化一個物件的時候,這個物件會自動完成的一些初始化的作業,
關于super:
菜鳥教程是這樣說的:

C語言中文網的解釋是:
Python 中子類會繼承父類所有的類屬性和類方法,嚴格來說,類的構造方法其實就是實體方法,因此毫無疑問,父類的構造方法,子類同樣會繼承,
但我們知道,Python 是一門支持多繼承的面向物件編程語言,如果子類繼承的多個父類中包含同名的類實體方法,則子類物件在呼叫該方法時,會優先選擇排在最前面的父類中的實體方法,顯然,構造方法也是如此,
我理解就是如果自己有建構式,也繼承了父類的建構式,這個時候應該會有一個呼叫優先級,在這里我不是很明白,這個我就是把它當成一個格式,照著寫而已,
super(mywindow,self).__init__()#應該是呼叫了父類的構造方法
class mywindow(QtWidgets.QWidget):#繼承 QtWidgets.QWidget 類方法
def __init__(self):
super(mywindow,self).__init__()
程式框架:
app = QtWidgets.QApplication(sys.argv)##pyqt 視窗必須在 QApplication 方法中使用
window = mywindow()#實體化物件 mywindow是自己新建的類,繼承于QtWidgets.QWidget
window.show()#顯示視窗
sys.exit(app.exec_())#啟動事件回圈
這些必要性的東西就不解釋了,在這個框架里面,我們關心的東西是用我們自定義類實體化出來的物件,我們操作的物件也是這個實體化物件,
補充:對 name == “main”:的理解 對于JAVA、C++、C的程式來說,程式的入口就是mian函式,python
作為一種解釋性的腳本語言,Python代碼是從模塊頂行運行的,一個python檔案通常有兩種使用方法,第一是作為腳本直接執行,第二是 import 到其他的 python 腳本中被呼叫(模塊重用)執行,
if name == ‘main’: 的作用就是控制這兩種情況執行代碼的程序,在 if name == ‘main’:
下的代碼只有在第一種情況下(即檔案作為腳本直接執行)才會被執行,而 import 到其他腳本中是不會被執行的,
程式運行結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/234261.html
標籤:python
上一篇:Python入門教程(從小白到入門)(更新時間不定時)
下一篇:演算法題:只出現一次的數字
