前言
之前做過(guò)pyqt的一個(gè)簡(jiǎn)單界面,在一個(gè)窗口(MainWindow)中實(shí)現(xiàn)一些操作;之前嫌麻煩沒(méi)有去做多窗口和它們的切換功能。最近研究了下窗口的調(diào)用和切換。
pyqt4和5有很多不同,在參考別人案例的時(shí)候走了很多彎路,最后在pyqt5下實(shí)現(xiàn)了簡(jiǎn)潔的多窗口切換為大家參考。
思路
多窗口的切換和顯示連接到按鈕的信號(hào)上再進(jìn)行show()就行,格式上有別于pyqt4。
一個(gè)邏輯比較清晰的解決方案是,使用一個(gè)主程序,在其中實(shí)例化各個(gè)窗口,然后定義它們的顯示邏輯即是按鈕的槽函數(shù)。
格式上稍有不對(duì)就會(huì)報(bào)錯(cuò),也是讓我重新審視了一下python類和繼承的語(yǔ)法= =
同時(shí)窗口的類型也和pyqt4有所不同,pyqt5下QWidgets為主,與4中QDialog顯示方式也有所不同。
具體方式見代碼。
代碼
主程序——實(shí)例化各個(gè)窗口
from PyQt5 import QtCore, QtGui, QtWidgets from test import Ui_Dialog from Login import Ui_MainWindow_Login class Ui_Dialog(QtWidgets.QWidget,Ui_Dialog): def __init__(self): super(Ui_Dialog,self).__init__() self.setupUi(self) #定義登出按鈕的功能 def logoutEvent(self): self.hide() #隱藏此窗口 self.log = loginWindow() self.log.show() #顯示登錄窗口 #必須加上self class loginWindow(QtWidgets.QMainWindow,Ui_MainWindow_Login): def __init__(self): super(loginWindow,self).__init__() self.setupUi(self) #定義登錄按鈕的功能 def loginEvent(self): self.hide() self.dia = Ui_Dialog() self.dia.show() #self.dia.exec_() #pyqt5下show()方法有所改變,不再使用exec_()方法。 #運(yùn)行窗口Login if __name__=="__main__": import sys app=QtWidgets.QApplication(sys.argv) login_show=loginWindow() login_show.show() sys.exit(app.exec_())
分享名稱:PyQt5多窗口連接實(shí)例-創(chuàng)新互聯(lián)
本文地址:http://www.rwnh.cn/article22/dgchcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、外貿(mào)網(wǎng)站建設(shè)、用戶體驗(yàn)、網(wǎng)站策劃、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容