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

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

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

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

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

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


關于創(chuàng)建菜單主窗口,我們需要為其添加四個按鈕對應四個子窗口,同時按照用戶習慣我們添加一個退出程序的按鈕,關于四個按鈕的布局我們可以添加一個horizontal Layout(水平布局器)將按鈕加入到布局器中,這樣子,四個按鈕就會在布局器區(qū)域內(nèi)均勻分布且大小相同。至此,我們關于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)容是為對應的UI文件的存儲路徑,根據(jù)自己文件的存儲路徑自行修改。
五、程序運行效果

總結(jié)
到此這篇關于PyQt5使用QtDesigner實現(xiàn)多界面切換程序的文章就介紹到這了,更多相關PyQt5多界面切換程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python中matplotlib實現(xiàn)隨鼠標滑動自動標注代碼
這篇文章主要介紹了python中matplotlib實現(xiàn)隨鼠標滑動自動標注代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python http接口自動化測試框架實現(xiàn)方法示例
這篇文章主要介紹了Python http接口自動化測試框架實現(xiàn)方法,結(jié)合實例形式分析了Python針對http接口測試的相關實現(xiàn)與使用操作技巧,需要的朋友可以參考下2018-12-12
PyTorch使用Torchdyn實現(xiàn)連續(xù)時間神經(jīng)網(wǎng)絡的代碼示例
神經(jīng)常微分方程(Neural ODEs)是深度學習領域的創(chuàng)新性模型架構(gòu),它將神經(jīng)網(wǎng)絡的離散變換擴展為連續(xù)時間動力系統(tǒng),本文將基于Torchdyn(一個專門用于連續(xù)深度學習和平衡模型的PyTorch擴展庫)介紹Neural ODE的實現(xiàn)與訓練方法,需要的朋友可以參考下2025-02-02
python基于socket模擬實現(xiàn)ssh遠程執(zhí)行命令
這篇文章主要介紹了python基于socket模擬實現(xiàn)ssh遠程執(zhí)行命令,幫助大家更好的理解和學習python,感興趣的朋友可以了解下2020-12-12
Python Numpy運行報錯:IndexError: too many in
在使用Numpy進行數(shù)組操作時,經(jīng)常會遇到各種錯誤,其中,IndexError: too many indices for array是一種常見的錯誤,它通常發(fā)生在嘗試使用一個過多維度的索引來訪問一個較低維度的數(shù)組時,本文介紹了Python Numpy報錯的解決辦法,需要的朋友可以參考下2024-07-07
Python實現(xiàn)的監(jiān)測服務器硬盤使用率腳本分享
這篇文章主要介紹了Python實現(xiàn)的監(jiān)測服務器硬盤使用率腳本分享,本文腳本適應windows和linux系統(tǒng),需要的朋友可以參考下2014-11-11

