激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - PyQt5 多窗口連接實例

PyQt5 多窗口連接實例

2021-07-16 00:05EXECUTER_ Python

今天小編就為大家分享一篇PyQt5 多窗口連接實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

前言

之前做過pyqt的一個簡單界面,在一個窗口(mainwindow)中實現(xiàn)一些操作;之前嫌麻煩沒有去做多窗口和它們的切換功能。最近研究了下窗口的調(diào)用和切換。

pyqt4和5有很多不同,在參考別人案例的時候走了很多彎路,最后在pyqt5下實現(xiàn)了簡潔的多窗口切換為大家參考。

思路

多窗口的切換和顯示連接到按鈕的信號上再進行show()就行,格式上有別于pyqt4。

一個邏輯比較清晰的解決方案是,使用一個主程序,在其中實例化各個窗口,然后定義它們的顯示邏輯即是按鈕的槽函數(shù)。

格式上稍有不對就會報錯,也是讓我重新審視了一下python類和繼承的語法= =

同時窗口的類型也和pyqt4有所不同,pyqt5下qwidgets為主,與4中qdialog顯示方式也有所不同。

具體方式見代碼。

代碼

主程序——實例化各個窗口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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_()方法。
 
#運行窗口login
if __name__=="__main__":
  import sys
  app=qtwidgets.qapplication(sys.argv)
  login_show=loginwindow()
  login_show.show()
  sys.exit(app.exec_())

多窗口

需要用到的多個窗口可以用designer直接生成,主窗口實例化。在其中定義好信號連接即可

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from pyqt5 import qtcore, qtgui, qtwidgets
 
class ui_mainwindow_login(object):
  def setupui(self, mainwindow_login):
    #略
  def retranslateui(self, mainwindow_login):
    #略
 
if __name__=="__main__":
  import sys
  app=qtwidgets.qapplication(sys.argv)
  widget = qtwidgets.qmainwindow()
  login = ui_mainwindow_login()
  login.setupui(widget)
  widget.show()
  sys.exit(app.exec_())

效果

PyQt5 多窗口連接實例

點擊登陸:

PyQt5 多窗口連接實例

退出登錄則返回到第一個窗口。

切換

理解好這個實例后,添加更多窗口都是線性復雜度的操作,在designer中設計好窗口,直接轉(zhuǎn)碼后就可在主程序中實例化該窗口并設計它們的顯示邏輯。

以上這篇pyqt5 多窗口連接實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/EXECUTER_/article/details/78877159

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品在线观看免费 | 久久国产精品一区 | 久久影院免费观看 | 爱爱插插视频 | 久久99精品国产自在现线 | 国产一级一级片 | 91性高湖久久久久久久久网站 | 欧美毛片免费观看 | 成人在线视频免费观看 | 久久久视频免费观看 | 一级免费看片 | 免费a级观看 | 羞羞羞羞视频 | 久久91久久久久麻豆精品 | 国产乱xxxx| 免费黄色短视频网站 | 天天草天天干天天射 | 欧美一区二区三区四区五区动图 | 成人免费网站在线观看视频 | 欧美日韩在线视频一区 | 欧美亚成人 | 免费国产一级淫片 | 欧美性黄 | 日本黄色免费观看视频 | 欧美在线中文字幕 | 欧美三级短视频 | 黄色高清视频网站 | 久久影院在线观看 | 毛片大全免费 | 欧美极品欧美精品欧美视频 | 欧美www| 91在线视频网址 | 精品一区二区久久久久久按摩 | 久久毛片免费观看 | 一级片999| 国产免费观看av | 国产91小视频在线观看 | 欧美成人精品欧美一级乱黄 | 日本中文字幕电影在线观看 | 国产精品一区视频 | 国产91精品久久久 |