PyQt5快速開發實戰學習筆記 一)

2021-10-09 21:21:20 字數 2812 閱讀 3745

pyqt5

這裡主要學習pyqt5的基本視窗控制項。

qmainwindowqwidgetqdialog三個類都是用來建立視窗的,可以直接使用,也可以繼承後再使用。

qmainwindow視窗可以包含選單欄、工具欄、狀態列等,是最常見的視窗形式。

qdialog是對話方塊視窗的基類。它沒有選單欄、工具欄、狀態列等。

如果是主視窗,就是使用qmainwindow類;如果是對話方塊,就使用qdialog類;如果不確定,或者有可能作為頂層視窗,也可能嵌入到其他視窗中,那麼就使用qwidget類。

qmainwindow中比較重要的方法如下表所示:

方法描述

add*******()

新增工具欄

centralwidget()

返回視窗中心的控制項,未設定時返回null

menubar()

反回主視窗的選單欄

setcentralwidget()

設定視窗中心的控制項

setstatusbar()

設定狀態列

statusbar()

獲得狀態列物件後,呼叫狀態列物件的showmessage(message,int timeout = 0)方法,顯示狀態列資訊。其中第乙個引數是要顯示的狀態列資訊;第二個引數表示資訊停留的時間,單位是毫秒,預設為0,表示一直顯示狀態列資訊

qmainwindow不能設定布局(使用setlayout()方法),因為他有自己的布局。

例項一

此例演示在pyqt5建立乙個簡單的主視窗,其**如下:

import sys

from pyqt5.qtgui import qicon

class mainwindow(qmainwindow):

def __init__(self,parent = none):

super(mainwindow,self).__init__(parent)

self.resize(400,200)

self.status = self.statusbar()

self.status.showmessage('這是狀態列提示')

self.setwindowtitle('pyqt5 mainwindow 例子')

if __name__ == '__main__':

form = mainwindow()

form.show()

顯示效果

**分析

使用qmainwindow類的statusbar()方法建立狀態列,然後使用showmessage()方法將提示資訊在狀態列中,顯示時間是5秒。

在自定義的視窗類中,繼承了主視窗qmainwindow類所有的屬性和方法,然後使用父類qmainwindow的建構函式super()初始化視窗,再設定視窗標題,最後通過訊息迴圈顯示視窗,狀態列可以直接由statusbar()產生,由showmessage()來顯示資訊。

此例利用訊號與槽機制關閉主視窗,**如下:

import sys

class winform(qmainwindow):

def __init__(self,parent = none):

super(winform,self).__init__(parent)

self.setwindowtitle('關閉視窗的例子')

self.button1 = qpushbutton('關閉主視窗')

self.button1.clicked.connect(self.onbuttonclick)

layout = qhboxlayout()

layout.addwidget(self.button1)

main_frame = qwidget()

main_frame.setlayout(layout)

self.setcentralwidget(main_frame)

def onbuttonclick(self):

sender = self.sender()

print(sender.text() + '被按下了')

if __name__ == '__main__':

form = winform()

form.show()

顯示效果

當單擊』『關閉主視窗』『按鈕後,將關閉顯示的視窗。通過以下**將按鈕的clicked訊號與onbuttonclick槽函式關聯起來。

self.button1.clicked.connect(self.onbuttonclick)

PyQt5 學習筆記

pyqt5是由一系列python模組組成。超過620個類,6000函式和方法。能在諸如unix windows和mac os等主流作業系統上執行。pyqt5有兩種證書,gpl和商業證書。pyqt5類分為很多模組,主要模組有 qtcore 包含了核心的非gui的功能。主要和時間 檔案與資料夾 各種資料...

PyQt5快速入門

pyqt5快速入門系列部落格根據 pyqt5快速開發與實戰 學習而來,請參考原書。本系列部落格原則上不再詳述qt技術細節,qt相關技術可以參考本人qt開發系列部落格或其它網路博文或書籍。pyqt5快速入門 一 pyqt5簡介 pyqt5快速入門 二 pyqt5訊號槽機制 pyqt5快速入門 三 py...

pyqt5學習筆記 1

from pyqt5.qt import import sys 使用sys.ar 是為了讓gui程式接收到使用者傳遞的引數 建立乙個控制項,如果這個控制項沒有父控制項,那麼pyqt5會控制項加上標題等屬性,並可以設定屬性內容 這個控制項也可以叫做頂層控制項,沒有父控制項的控制項的展示需要呼叫show...