国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看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)中實現一些操作;之前嫌麻煩沒有去做多窗口和它們的切換功能。最近研究了下窗口的調用和切換。

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

思路

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

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

格式上稍有不對就會報錯,也是讓我重新審視了一下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中設計好窗口,直接轉碼后就可在主程序中實例化該窗口并設計它們的顯示邏輯。

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 午夜视频在线免费观看 | 在线免费国产 | 毛片免费观看视频 | 久久久久国产精品免费免费搜索 | 婷婷综合激情 | 国内美女人妻一级毛片免费看 | 午夜伦4480yy私人影院 | 国产精品久久久久久久9999 | 在线播放亚洲 | 亚洲欧美激情精品一区二区 | 免费黄色大片网址 | 国产欧美在线观看 | 2019中文字幕视频 | 日韩欧美国产一区二区三区 | 特黄视频免费观看 | 高清国产一区二区三区 | 欧美大片在线观看 | 精品国产乱码久久久久久久软件 | 91精品在线播放 | 亚洲精品专区 | 欧美精品在线免费观看 | 日本v在线观看 | 成人片在线播放 | 韩日一区二区 | av国产精品 | 激情综合五月网 | 一区二区免费在线观看 | 日韩视频不卡 | 久久久久久国产精品 | 激情五月婷婷综合 | h片在线 | a级三四级黄大片 | 免费一区二区 | 自拍视频网站 | 自拍偷拍小视频 | 精品一二区| 天堂av2020| 97久久精品午夜一区二区 | 日本一区二区三区四区 | 91av官网 | 精品无码久久久久久国产 |