Python 3+ PyQT5的入門使用
視窗型別介紹
QMainWindow,QWidget和QDialog都是用來建立視窗的.可以直接使用也可以繼承後再使用.
- QMainWindow
該類視窗可以包括選單欄,工具欄,狀態列,標題欄等,是最常見的視窗形式,也是GUI程式的主視窗. - QWidget
該類視窗比較通用,它可以作為頂層視窗(作父視窗),也可以嵌入到其他視窗(作子視窗).如果不確定視窗的定位,就可以使用該類視窗.為什麼這個類這麼通用呢?是因為QWidget是所有使用者介面物件的基類.所有視窗和控制元件都直接或者間接繼承QWidget類. - QDialog
該類視窗是對話方塊視窗基類.主要用於執行短期任務,或者與使用者進行互動.它可以是模態的,也可以是非模態的.該類視窗沒有選單欄,工具欄和狀態列等.
建立主視窗
- 沒有父視窗的視窗就是頂層視窗(個人理解:根視窗)
- 在PyQT中,QMainWindow視窗中會有一個控制元件(QWidget),它是用來佔位置的,佔據著中心視窗.可以使用setCentralWidget()來設定中心視窗.
這裡是圖片(暫時沒有寫入圖片地址) - 注意QMainWindow不能設定佈局(使用setLayout()方法),因為它有自己的佈局.
QMainWindow類中常用的方法
方法 | 描述 |
---|---|
addToolBar() | 新增工具欄 |
centralWidget() | 返回視窗中心的一個控制元件,未設定的時候返回null |
menuBar() | 返回主視窗的選單欄 |
setCentralWidget() | 設定視窗中心的控制元件 |
setStatusBar() | 設定狀態列 |
statusBar() | 獲得狀態列物件後,呼叫狀態列物件的 showMessage(message,int timeout=0)方法顯示狀態列資訊. 第一個引數是顯示狀態列的資訊;第二個引數是資訊停留時間, 單位是毫秒,預設是0,表示一直顯示狀態列資訊. |
建立一個簡單的主視窗
import sys
from PyQt5.QtWidgets import QMainWindow,QApplication
class MainWindow(QMainWindow):
def __init__(self,parent=None):
super(MainWindow,self).__init__(parent)
self.resize(400,200) # 設定視窗的大小
self.status = self.statusBar() # 例項化狀態列
self.status.showMessage("這是狀態列顯示",5000) # 顯示狀態列資訊
self.setWindowTitle("PyQt簡單的主視窗") # 設定視窗的標題
if __name__ == "__main__":
app = QApplication(sys.argv)
form = MainWindow() # 例項化物件
form.show() # 顯示視窗
sys.exit(app.exec_())