1 说明

该程序实现多个窗口的互相切换;其要点是:

  • 有几个窗口,定义几个独立的窗口类;
  • 当事件触发以后,让本窗口隐藏。让其它窗口显现。

2 参考代码


# -*- coding: utf-8 -*-
'''
多窗口反复切换,只用PyQt5实现
'''
import sys#导入系统
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QPushButtonclass FirstUi(QMainWindow):#第一个窗口类def __init__(self):super(FirstUi, self).__init__()self.init_ui()def init_ui(self):self.resize(300, 200)#设置窗口大小self.setWindowTitle('First Ui')#设置窗口标题self.btn = QPushButton('jump', self)#设置按钮和按钮名称self.btn.setGeometry(50, 100, 100, 50)#前面是按钮左上角坐标,后面是窗口大小self.btn.clicked.connect(self.slot_btn_function)#将信号连接到槽def slot_btn_function(self):self.hide()#隐藏此窗口self.s = SecondUi()#将第二个窗口换个名字self.s.show()#经第二个窗口显示出来class SecondUi(QWidget):#建立第二个窗口的类def __init__(self):super(SecondUi, self).__init__()self.init_ui()def init_ui(self):self.resize(500, 350)#设置第二个窗口代码self.setWindowTitle('Second Ui')#设置第二个窗口标题self.btn = QPushButton('jump', self)#设置按钮和按钮名称self.btn.setGeometry(150, 150, 100, 50)#前面是按钮左上角坐标,后面是按钮大小self.btn.clicked.connect(self.slot_btn_function)#将信号连接到槽def slot_btn_function(self):self.hide()#隐藏此窗口self.f = FirstUi()#将第一个窗口换个名字self.f.show()#将第一个窗口显示出来def main():app = QApplication(sys.argv)w = FirstUi()#将第一和窗口换个名字w.show()#将第一和窗口换个名字显示出来sys.exit(app.exec_())#app.exet_()是指程序一直循环运行直到主窗口被关闭终止进程(如果没有这句话,程序运行时会一闪而过)if __name__ == '__main__':#只有在本py文件中才能用,被调用就不执行main()

三、不足点分析

1 以上代码有所不足;

其主要问题是,如果两个窗口都保持激活,(如果不激活相当于每次重新建立新窗,数据不能保留)

2 解决办法:

  • 用有限机设计状态转移
  • 将有限机定义在根窗口下,具体实现当作一个homework吧。

python知识:如何多窗口切换相关推荐

  1. python页面切换_Python+Selenium学习--窗口切换及操作元素

    场景 有时候我们在测试一个web 应用时会出现多个浏览器窗口的情况,在selenium1.0 中这个问题比较难处理.webdriver 提供了相关相方法可以很轻松的在多个窗口之间切换并操作不同窗口上的 ...

  2. python selenium元素定位、alert操作、iframe切换、多窗口切换、键盘操作、鼠标操作、js操作、操作本地文件、css高级操作

    用了那么久的selenium,整理一篇自己经常用到的标签和方法 本文档持续更新优化,喜欢的小伙伴可以点赞收藏一下 文章目录 1. 通用元素定位方法,需要引入By. 2. 通用多个元素查找By 3. c ...

  3. Python+Selenium学习笔记8 - 多表单多窗口切换

    1.多表单切换 下图为待测页面:内嵌百度首页 切换到百度首页进行操作 1 #coding = utf-8 2 3 from selenium importwebdriver4 importos5 im ...

  4. Selenium3 + Python3自动化测试系列——多窗口切换

    多窗口切换 在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要主机切换到新打开的窗口上进行操作. WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切 ...

  5. web页面:窗口切换

    1.标签页切换 在某个窗口上点击某个链接在新标签页显示新窗口时,如果想要点击新标签页的元素时,需要进行窗口切换. driver.switch_to.window('窗口名称') from seleni ...

  6. Python GUI之tkinter窗口视窗教程大集合

    Python GUI之tkinter窗口视窗教程大集合 一.前言 二.Tkinter是什么 三.Tkinter 控件详细介绍 1. Tkinter 模块元素简要说明 2. 常用窗口部件及简要说明: 四 ...

  7. 自动化测试——多窗口切换和切换frame

    这里写目录标题 一.多窗口切换 1.base.py:公共代码 2.切换句柄的方式1,通过for循环 3.切换句柄的方式2,通过索引切换 4.源代码 二.frame窗口 1.什么是frame? 2.Fr ...

  8. python中tkinter模块窗口操作_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)...

    本篇博文搬到个人博客:[洪卫の博客](https://sunhwee.com)上面去了,想要获得最佳阅读体验,欢迎前往 [https://sunhwee.com](洪卫の博客), 建议用电脑查看教程文 ...

  9. selenium_多窗口切换整理--第二节

    第一种方法: 使用场景: 打开多个窗口,需要定位到新打开的窗口 使用方法: #获取打开的多个窗口句柄 windows=driver.window_handles #切换到当前最新打开的窗口 drive ...

  10. html实现视频会议 (web端+手机端),支持多人在线,窗口切换,分享 - Cover 七牛

    站在巨人的肩膀上,总是简单一些,但是看文档还有写这些demo还是用了1天的时间 电脑端: 本地窗口 远程窗口切换 手机端:         源码:server部分用了php,换成 java 或  py ...

最新文章

  1. 虚拟局域网vlan实验报告_网络交换机如何规划,VLAN原理介绍
  2. JavaScript 要点(十四)HTML DOM 元素(节点)
  3. c++ 导入caffe
  4. ehchache验证缓存过期的api_Ehcache缓存配置
  5. centos6.5下搭建oracle 11g
  6. 配置环境JDK Tomcat Maven
  7. CSS3中的pointer-events
  8. 力扣347. 前 K 个高频元素(JavaScript,堆)
  9. 不间断电源ups标准_UPS不间断电源除尘技巧分析
  10. XBMC Skinning Manual
  11. 哈希表(散列表)冲突解决方法
  12. linux普通用户配置自己的python环境
  13. pythonz字体颜色以及终端不显示颜色的解决办法
  14. win10 linux重置密码,Win10重置Linux子系统用户密码教程
  15. android手机传感器,安卓手机传感器
  16. 磁盘区号 linux,区号
  17. easy connect无法卸载干净,后台sangfor文件一直在运行的卸载方法
  18. 详解cmd修复系统命令操作方法
  19. 关于电影视频服务器架设的方法
  20. B860AV3.1-M2_刷机固件

热门文章

  1. NTU课程:MAS714 (3)Graph Algorithms
  2. sr锁存器 数电_随机存取存储器 RAM || SRAM || DRAM || 数电
  3. Python入门100题 | 第071题
  4. Python入门100题 | 第043题
  5. Anaconda中Jupyter notebook打开后闪退问题解决方法
  6. 云端大数据实战记录-大数据推荐
  7. spring boot actuator工作原理之http服务暴露源码分析
  8. reactor官方文档译文(2)Reactor-core模块
  9. Keepalived配置与使用--转载
  10. Android中Uri的使用