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 名称空间与作用域详情

    python 名称空间与作用域详情

    这篇文章主要介绍了python 名称空间与作用域详情,函数内部的函数只能在函数内部调用,不能在函数外部调用,通过接下来的学习你将会知道为什么会出现这种情况。

    2021-10-10
  • pycharm安装中文插件的2种方法图文详解

    pycharm安装中文插件的2种方法图文详解

    PyCharm可以说是当今最流行的一款Python IDE了,下面这篇文章主要给大家介绍了关于pycharm安装中文插件的2种方法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • conda配置python虚拟环境的实现步骤

    conda配置python虚拟环境的实现步骤

    本文主要介绍了conda配置python虚拟环境的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 利用python制作拼图小游戏的全过程

    利用python制作拼图小游戏的全过程

    这篇文章主要给大家介绍了关于利用python制作拼图小游戏的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • python用match()函数爬数据方法详解

    python用match()函数爬数据方法详解

    在本篇文章里小编给大家整理了关于python用match()函数爬数据方法以及相关知识点,需要的朋友们学习下。
    2019-07-07
  • 利用Python中unittest实现简单的单元测试实例详解

    利用Python中unittest实现简单的单元测试实例详解

    如果项目复杂,进行单元测试是保证降低出错率的好方法,Python提供的unittest可以很方便的实现单元测试,从而可以替换掉繁琐杂乱的main函数测试的方法,将测试用例、测试方法进行统一的管理和维护。本文主要介绍了利用Python中unittest实现简单的单元测试。
    2017-01-01
  • python爬虫反爬之图片验证功能实现

    python爬虫反爬之图片验证功能实现

    这篇文章主要介绍了python爬虫反爬之图片验证功能实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • pytorch交叉熵损失函数的weight参数的使用

    pytorch交叉熵损失函数的weight参数的使用

    这篇文章主要介绍了pytorch交叉熵损失函数的weight参数的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python读取分割压缩TXT文本文件实例

    Python读取分割压缩TXT文本文件实例

    今天小编就为大家分享一篇Python读取分割压缩TXT文本文件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 使用PyInstaller 打包配置文件

    使用PyInstaller 打包配置文件

    这篇文章主要介绍了使用PyInstaller 打包配置文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02

最新评论