pyqt5主窗口按键弹出子窗口的实现

 更新时间:2023年02月07日 11:05:00   作者:☆程序小黑★  
本文主要介绍了pyqt5主窗口按键弹出子窗口的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

目标:主窗口保持,通过按键弹出子窗口

步骤一pyqt5创建主窗口,并设置按键

from PyQt5.QtWidgets import *
import sys
 # 主窗口
class Main(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("主窗口")
        fbutton = QPushButton("弹出子窗口", self)
        fbutton.clicked.connect(self.show_child)
 
    def show_child(self):
        print("子窗口")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Main()
    window.show()
    sys.exit(app.exec_())

运行结果:

在这里插入图片描述

步骤二pyqt5创建子窗口,并设置内容

from PyQt5.QtWidgets import *
import sys
 
 
class Child(QMainWindow):
    def __init__(self):
        super().__init__()
        self.resize(360, 240)
        self.setWindowTitle("我是子窗口啊")

# 运行主窗口
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Child()
    window.show()
    sys.exit(app.exec_())

运行结果:

在这里插入图片描述

步骤三pyqt5通过主窗口按键弹出子窗口

from PyQt5.QtWidgets import *
import sys
 # 主窗口
class Main(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("主窗口")
        fbutton = QPushButton("弹出子窗口", self)
        fbutton.clicked.connect(self.show_child)
 
    def show_child(self):
        print("子窗口")
        self.resize(360, 240)
        self.setWindowTitle("我是子窗口啊")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Main()
    window.show()
    sys.exit(app.exec_())

本以为可以实现,结果和预想区别很大,按下按键后,结果如下:

在这里插入图片描述

结果是之间取代了原来的主窗口而且按键没有消失
原因是只有一个类,只有一个主窗口,所以修改内容都是在同一个窗口内修改的
经过修改,第二次修改后测试源码:

from PyQt5.QtWidgets import *
import sys
 # 主窗口
class Main(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("主窗口")
        fbutton = QPushButton("弹出子窗口", self)
        fbutton.clicked.connect(self.show_child)
    def show_child(self):
        print("子窗口")
        child_window = Child()
        child_window.show()
        
class child(QMainWindow):
    def __init__(self):
        super().__init__() 
        print("子窗口")
        self.resize(360, 240)
        self.setWindowTitle("我是子窗口啊")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Main()
    window.show()
    sys.exit(app.exec_())

但是,这里遇到个问题,子窗口闪退。

在这里插入图片描述

看到是可以打印子窗口,说明是已经进入子窗口,但是就是一直闪退
研究了很久,将show()改成exec_()后运行,报错如下,原因是不存在exec_()

在这里插入图片描述

解决办法:将class的QMainWindow改成QDialog

在这里插入图片描述


改成

在这里插入图片描述

运行结果:

在这里插入图片描述

到此这篇关于pyqt5主窗口按键弹出子窗口的实现的文章就介绍到这了,更多相关pyqt5主窗口按键弹出子窗口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法

    python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法

    这篇文章主要介绍了python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法,需要的朋友可以参考下
    2019-10-10
  • BatchNorm2d原理、作用及pytorch中BatchNorm2d函数的参数使用

    BatchNorm2d原理、作用及pytorch中BatchNorm2d函数的参数使用

    这篇文章主要介绍了BatchNorm2d原理、作用及pytorch中BatchNorm2d函数的参数使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • python matplotlib实现双Y轴的实例

    python matplotlib实现双Y轴的实例

    今天小编就为大家分享一篇python matplotlib实现双Y轴的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Python 异常处理的实例详解

    Python 异常处理的实例详解

    这篇文章主要介绍了Python 异常处理的实例详解的相关资料,希望通过本文能帮助到大家掌握Python 异常的知识,需要的朋友可以参考下
    2017-09-09
  • Python Django框架防御CSRF攻击的方法分析

    Python Django框架防御CSRF攻击的方法分析

    这篇文章主要介绍了Python Django框架防御CSRF攻击的方法,结合实例形式分析了Python Django框架防御CSRF攻击的原理、配置方法与使用技巧,需要的朋友可以参考下
    2019-10-10
  • python实现简单学生信息管理系统

    python实现简单学生信息管理系统

    这篇文章主要为大家详细介绍了python简单的学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • python实现批量文件重命名

    python实现批量文件重命名

    这篇文章主要介绍了python实现批量文件重命名,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • wxPython实现带颜色的进度条

    wxPython实现带颜色的进度条

    这篇文章主要介绍了wxPython实现带颜色的进度条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Python绘图Matplotlib之坐标轴及刻度总结

    Python绘图Matplotlib之坐标轴及刻度总结

    这篇文章主要介绍了Python绘图Matplotlib之坐标轴及刻度总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Python3如何判断三角形的类型

    Python3如何判断三角形的类型

    这篇文章主要介绍了Python3如何判断三角形的类型,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04

最新评论