使用PyQt5做界面开发时,如果做一个较复杂的程序时往往会涉及到在主程序中打开某个菜单弹出子窗口的问题,如果在打开很多子窗口的时候想一键退出关闭主窗口,但其它的子窗口仍然正常显示着,那么如何在代码中进行处理关闭主程序时所有关联的子窗口也一并关闭掉,下面就介绍方法,主要是对PyQt5的 closeEvent 方法进行重写即可

将该closeEvent方法重写在主界面的类中

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
1     def closeEvent(self, event):
2         """重写该方法主要是解决打开子窗口时,如果关闭了主窗口但子窗口仍显示的问题,使用sys.exit(0) 时就会只要关闭了主窗口,所有关联的子窗口也会全部关闭"""
3         sys.exit(0)

 

然后运行时只要你通过窗口右上角的关闭按钮,或者是菜单中的退出按钮(按钮事先已经绑定了槽函数self.close),这样只要你打开了再多的子窗口,这时在主界面中退出或者关闭都会将所有子窗口随主界面的关闭而关闭了

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄