PyQt5使用QtDesigner實(shí)現(xiàn)多界面切換程序的全過程
一、首先要安裝QtDesigner
具體安裝步驟在此不做贅述,若是有需要的小伙伴可以去找一找教程。
二、簡單介紹QtDesigner
各位伙伴安裝完成打開之后的界面類似如下圖(Windows版本),圖片中已經(jīng)對各個區(qū)域及其作用進(jìn)行簡單介紹,具體用法會在下面繼續(xù)講解。

三、使用QtDesigner做簡單界面
1.按照如下步驟,創(chuàng)建一個項(xiàng)目,開始添加控件以及設(shè)置相應(yīng)的各項(xiàng)屬性。

2.打開的窗口如下,通過控件屬性修改區(qū)域設(shè)置窗口的標(biāo)題和圖標(biāo)

我們雙擊修改屬性將窗口標(biāo)題修改為:W_1,關(guān)于窗口圖標(biāo)的設(shè)置會在后邊介紹導(dǎo)入本地資源文件時詳細(xì)講解。
此處我們暫時略過·······
3.為窗口添加控件(如Label(標(biāo)簽)、Button(按鈕)等)

我們通過拖動要添加的控件Label、Push Button到創(chuàng)建的窗口區(qū)域來實(shí)現(xiàn)添加,添加成功之后,雙擊即可以修改其中的內(nèi)容,同時在空間的總覽區(qū)域,我們可以選中相應(yīng)的控件名稱雙擊修改成為我們要設(shè)置成為的名稱,在此處我們將Label和Push Button的名稱分別設(shè)置為:label_1和btn_1方便我們之后在程序中的調(diào)用;在控件屬性的修改區(qū)域,我們找到font相關(guān)的屬性,通過Point Size設(shè)置字體的大小,勾選Bold選項(xiàng)表示設(shè)置字體為粗體。到此,我們第一個窗口的基本控件及其屬性已經(jīng)修改完成,點(diǎn)擊保存按鈕選擇路徑,設(shè)置文件名稱將文件保存到預(yù)期文件夾中(注意保存格式為.ui)
4.保存設(shè)置好的文件
選擇好文件保存的路徑,將文件命名修改為與窗口名稱一致(建議,防止寫代碼的時候搞不清楚文件對應(yīng)的窗口)

5.重復(fù)上述操作,設(shè)置另外需要的三個子窗口模板以及第一的菜單窗口模板。
相關(guān)流程如下:


關(guān)于創(chuàng)建菜單主窗口,我們需要為其添加四個按鈕對應(yīng)四個子窗口,同時按照用戶習(xí)慣我們添加一個退出程序的按鈕,關(guān)于四個按鈕的布局我們可以添加一個horizontal Layout(水平布局器)將按鈕加入到布局器中,這樣子,四個按鈕就會在布局器區(qū)域內(nèi)均勻分布且大小相同。至此,我們關(guān)于QtDesigner的操作已經(jīng)結(jié)束,下面要開始Python的編程階段。
四、Python編寫程序?qū)崿F(xiàn)界面切換功能
from PyQt5 import uic
import sys
from PyQt5.QtWidgets import QWidget, QApplication
class Window_0(QWidget):
def __init__(self):
super(Window_0, self).__init__()
self.init_ui()
def init_ui(self):
self.Firstui = uic.loadUi("UI文件/模板/W_0.ui")
self.btn_w1 = self.Firstui.btn_w1
self.btn_w2 = self.Firstui.btn_w2
self.btn_w3 = self.Firstui.btn_w3
self.btn_w4 = self.Firstui.btn_w4
self.btn_quit = self.Firstui.btn_quit
class Window_1(QWidget):
def __init__(self):
super(Window_1, self).__init__()
self.init_ui_1()
def init_ui_1(self):
self.ui_1 = uic.loadUi("UI文件/模板/W_1.ui")
self.btn_1 = self.ui_1.btn_1
class Window_2(QWidget):
def __init__(self):
super(Window_2, self).__init__()
self.init_ui_2()
def init_ui_2(self):
self.ui_2 = uic.loadUi("UI文件/模板/W_2.ui")
self.btn_2 = self.ui_2.btn_2
class Window_3(QWidget):
def __init__(self):
super(Window_3, self).__init__()
self.init_ui_3()
def init_ui_3(self):
self.ui_3 = uic.loadUi("UI文件/模板/W_3.ui")
self.btn_3 = self.ui_3.btn_3
class Window_4(QWidget):
def __init__(self):
super(Window_4, self).__init__()
self.init_ui_4()
def init_ui_4(self):
self.ui_4 = uic.loadUi("UI文件/模板/W_4.ui")
self.btn_4 = self.ui_4.btn_4
if __name__ == '__main__':
app = QApplication(sys.argv)
w_0 = Window_0()
w_1 = Window_1()
w_2 = Window_2()
w_3 = Window_3()
w_4 = Window_4()
w_0.Firstui.show()
w_0.btn_w1.clicked.connect(w_1.ui_1.show)
w_0.btn_w2.clicked.connect(w_2.ui_2.show)
w_0.btn_w3.clicked.connect(w_3.ui_3.show)
w_0.btn_w4.clicked.connect(w_4.ui_4.show)
w_0.btn_quit.clicked.connect(app.quit)
app.exec_()注意:uic.loadUi("UI文件/模板/W_0.ui")雙引號里邊的內(nèi)容是為對應(yīng)的UI文件的存儲路徑,根據(jù)自己文件的存儲路徑自行修改。
五、程序運(yùn)行效果

總結(jié)
到此這篇關(guān)于PyQt5使用QtDesigner實(shí)現(xiàn)多界面切換程序的文章就介紹到這了,更多相關(guān)PyQt5多界面切換程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 詳解PyCharm+QTDesigner+PyUIC使用教程
- PyQt 圖解Qt Designer工具的使用方法
- python GUI庫圖形界面開發(fā)之PyQt5 Qt Designer工具(Qt設(shè)計師)詳細(xì)使用方法及Designer ui文件轉(zhuǎn)py文件方法
- python之PySide2安裝使用及QT Designer UI設(shè)計案例教程
- Qt Designer的簡單使用方法
- PyQT5之使用QT?Designer創(chuàng)建基本窗口方式
- Pyside6開發(fā)使用Qt?Designer的示例代碼
- 使用Qt?Designer開發(fā)的實(shí)現(xiàn)示例
相關(guān)文章
python中matplotlib實(shí)現(xiàn)隨鼠標(biāo)滑動自動標(biāo)注代碼
這篇文章主要介紹了python中matplotlib實(shí)現(xiàn)隨鼠標(biāo)滑動自動標(biāo)注代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python http接口自動化測試框架實(shí)現(xiàn)方法示例
這篇文章主要介紹了Python http接口自動化測試框架實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Python針對http接口測試的相關(guān)實(shí)現(xiàn)與使用操作技巧,需要的朋友可以參考下2018-12-12
PyTorch使用Torchdyn實(shí)現(xiàn)連續(xù)時間神經(jīng)網(wǎng)絡(luò)的代碼示例
神經(jīng)常微分方程(Neural ODEs)是深度學(xué)習(xí)領(lǐng)域的創(chuàng)新性模型架構(gòu),它將神經(jīng)網(wǎng)絡(luò)的離散變換擴(kuò)展為連續(xù)時間動力系統(tǒng),本文將基于Torchdyn(一個專門用于連續(xù)深度學(xué)習(xí)和平衡模型的PyTorch擴(kuò)展庫)介紹Neural ODE的實(shí)現(xiàn)與訓(xùn)練方法,需要的朋友可以參考下2025-02-02
解決新django中的path不能使用正則表達(dá)式的問題
今天小編就為大家分享一篇解決新django中的path不能使用正則表達(dá)式的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
dataframe設(shè)置兩個條件取值的實(shí)例
下面小編就為大家分享一篇dataframe設(shè)置兩個條件取值的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
python基于socket模擬實(shí)現(xiàn)ssh遠(yuǎn)程執(zhí)行命令
這篇文章主要介紹了python基于socket模擬實(shí)現(xiàn)ssh遠(yuǎn)程執(zhí)行命令,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-12-12
Python Numpy運(yùn)行報錯:IndexError: too many in
在使用Numpy進(jìn)行數(shù)組操作時,經(jīng)常會遇到各種錯誤,其中,IndexError: too many indices for array是一種常見的錯誤,它通常發(fā)生在嘗試使用一個過多維度的索引來訪問一個較低維度的數(shù)組時,本文介紹了Python Numpy報錯的解決辦法,需要的朋友可以參考下2024-07-07
通過celery異步處理一個查詢?nèi)蝿?wù)的完整代碼
今天小編就為大家分享一篇通過celery異步處理一個查詢?nèi)蝿?wù)的完整代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Python實(shí)現(xiàn)的監(jiān)測服務(wù)器硬盤使用率腳本分享
這篇文章主要介紹了Python實(shí)現(xiàn)的監(jiān)測服務(wù)器硬盤使用率腳本分享,本文腳本適應(yīng)windows和linux系統(tǒng),需要的朋友可以參考下2014-11-11

