wxpython 无法退出

WxPython——开始学习WxPython 本文介绍了WxPython图形界面开发的基础知识。首先展示了一个最简单的WxPython框架,包含导入模块、创建应用类、初始化方法等基本结构。然后逐步扩展,介绍了如何规范地创建Frame类和Panel面板,并在其中添加StaticText控件显示"Hello World"。文章重点讲解了WxPython的核心概念:应用程序对象、框架对象、主事件循环的工作原理,以及如何通过继承wx.App和wx.Frame类来构建GUI应用。最后通过一个完整的Hello World示例,演示了WxPyth 阅读详情

http://blog.youkuaiyun.com/xugangjava/article/details/8294716

ShowModal的原理

在主event loop中插入一个循环 来拦截 主窗口事件,当模态对话框退出时,取消这个循环,主窗口继续响应时间。

现在程序中开启了一个模态对话框,然后后台一个Timer要求退出程序,或者点击右下角退出程序


点击右下角退出,或者后台timer需要执行退出,(用户长期离开,自动退出)


在wxpython中 一般将一个Frame(loginFrame) 的Parent设置为NULL 然后

self.SetTopWindow(loginFrame)
self.SetExitOnFrameDelete(True)

 执行loginFrame Close的时候 程序将自动退出

但是如果  存在模态对话框  退出后 关闭TOP Window 后  程序无法退出,程序仍然在event loop,

在退出的时候,需要检测到模态对话框 然后 关闭掉 然后再来执行 退出程序

加入如下代码实现

	mainFrame=UiManager.MainFrame()
	mHwnd=mainFrame.GetHandle()
	hwnd= windll.user32.GetLastActivePopup(mHwnd)
	if hwnd!=mHwnd:
		win32gui.SendMessage(hwnd,WM_CLOSE,0,0)
GetLastActivePoup获取最近弹出的对话框句柄 并发送关闭消息,后退出主窗口

如果在 模态对话框 上在开模态对话框 则 

#关闭 上次弹出的模态对话框
def EvtClose(self,evt):
	mainFrame=UiManager.MainFrame()
	mHwnd=mainFrame.GetHandle()
	hwnd= windll.user32.GetLastActivePopup(mHwnd)
	if hwnd!=mHwnd:
		win32gui.SendMessage(hwnd,WM_CLOSE,0,0)
		wx.CallLater(200,lambda :win32gui.SendMessage(mHwnd,WM_CLOSE,0,0))#再次 发送关闭消息,
	else: #do close logic


必须 全部关闭 然后才能退出应用程序,CallLater是很重要的,向对话框 发送WM_CLOSE 后 模态对话框 不是马上销毁的,

必须等待 自身的 event loop退出后关闭,

GetLastActivePoup 

后SendMessage(WM_CLOSE)

再次GetLastActivePoup 发现得到是 已经关闭了的 窗口句柄,所以在此发送消息,逐一关闭 已经弹出的对话框




新手必看!华为S5700交换机健康检查清单:从CPU到日志的完整巡检流程 本文为新手网管人员提供华为S5700交换机的健康检查完整指南,涵盖CPU、内存、温度、日志等核心指标的日常维护流程。通过详细的display命令和实用案例,帮助用户快速掌握设备体检技巧,确保交换机稳定运行。 阅读详情

相关推荐

Arduino应用——PWM控制直流电机风扇

Arduino应用——PWM控制直流电机风扇PWM原理实验器件功能描述如何改变文本的样式插入链接与图片实现代码生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 最近在使用arduino UNO开发板完成课程小作业。其中一个要求设计一个电风扇控制系统,要求能够通过PWM调节风扇的转速。期间搜索了许多例程和方法,但受限于器件,效果不

hypecycle的博客 2万+

wxpython退出程序报"Python 已停止工作"的解决办法

出现以上错误应该是wxpython窗口关闭后,资源回收出了问题.之前也出现过类似的事情,主要的解方法是:把所有变量和 子线程等先关闭再退出,可是这次方法无效,一直报这错误还无法找到具体原因,只好用终极大杀器. 接管窗口关闭事件 self.Bind(wx.EVT_CLOSE,self.on_close) 关闭事件最后执行os._exit(0) def on_close(self,e...

hbh112233abc的博客 957

Redis TLS 加密传输实战:从证书生成到安全配置

本文详细介绍了为Redis启用TLS加密传输的完整实战流程。从阐述TLS加密的必要性开始,逐步指导读者生成自签名CA和服务器证书,并深入解析Redis服务端的核心安全配置,包括端口设置、认证模式与性能优化。最后,提供了主流客户端连接示例及生产环境下的排错与运维最佳实践,帮助构建安全的Redis通信通道。

weixin_29274969的博客 515

wxPython程序的退出

  # after the last window closes but before wxPython’s internal cleanup.# normal shutdown# wx.App.OnExit()# Even if the application is closed with wx.Exit(), the OnExit() method is stil

Struts 2 的专栏 3308

使用基于物质点法(MPM)的Anura3D模拟沙柱坍塌

本博客使用开源软件Anura3D软件模拟了一个沙柱坍塌的过程,这个软件是基于基于物质点法(MPM)设计的

weixin_59902634的博客 4041

【全部更新】2025金地杯E题山西省大学生数学建模思路代码文章教学:高速铁路牵引供电系统能耗优化

问题四将列车的运行速度与发车时间同时作为优化变量,建立联合优化模型,目标是在考虑电价机制和调度均衡性的前提下,使牵引供电系统一天内的总电费支出最小。问题三在考虑分时电价机制的基础上,基于遗传算法优化列车速度组合,使牵引供电系统一天内的总电费支出最小。然而,在实际运营中,不同时段的电价差异显著,合理安排列车的运行时间与运行速度,可有效降低系统的总电费支出。本研究聚焦于高速铁路牵引供电系统的能耗与电费优化问题,针对列车运行速度、发车时间与分时电价的综合影响,提出一系列数学模型,以实现系统能耗与电费的最小化。

xb459149247的博客 5289

pythonwx关闭窗口_wxPython:关闭wxPython程序

一、正常关闭wx.App子类的OnExit()方法在最后一个窗口被关闭且在wxPython的内在清理过程之前被调用,所以,可以在OnExit()方法中清理任何创建的非wxPython资源。如果调用了wx.Exit()关闭wxPython程序,OnExit()方法仍会被调用。如果想在所有窗口关闭后wxPython程序仍可继续,可使用wx.App的SetExitOnFrameDelete(flag)方...

weixin_39637260的博客 1453

深度:善用人工智能推动高等教育学习、教学与治理的深层变革

从学习方式的革新到教学模式的重构,再到治理体系的升级,人工智能已不再仅仅是辅助工具,而是成为重塑高等教育生态的核心驱动力。某高校的创新实践表明,引入AI生成虚拟患者后,医学生在临床沟通训练中的共情能力提升27%,印证了技术工具与人文教育的互补效应。美国卡内基梅隆大学的实践表明,经过系统培训的教师,其课程设计效率提升40%,且能精准定位83%学生的学习难点。当每个学生都掌握提示工程原理,每位教师都能驾驭AI教学工具,每所高校都建立智能治理框架时,教育将真正实现"以人为本"与"技术为用"的有机统一。

IT胶囊 1093

wxPython in Action (EVT_CLOSE)当关闭一个框架时都发生了什么?

当你关闭一个框架时,它最终消失了。除非这个框架被明确地告诉不关闭。换句话说,那关闭不是直接了当的。在wxPython的窗口部件关闭体系之后的用意是,给正在关闭的窗口部件充足的机会来关闭或释放它所占用任何非wxPython资源。如果你占用了某种昂贵的外部资源,如一个大的数据结构或一

embededvc的专栏 4538

别再手动填序号了!用Python脚本在Arcgis属性表里实现分组自动编号(附完整代码)

本文详细介绍了如何利用Python脚本在Arcgis属性表中实现分组自动编号,告别低效的手工操作。通过核心代码解析和实战教程,帮助GIS工程师快速掌握自动化编号技术,提升工作效率并降低错误率。特别适合城市规划、国土调查等需要处理大量分组数据的场景。

weixin_42532473的博客 306

【硬件工程师面经整理2_电源篇】

硬件工程师面经整理_电源篇

LeeYLong的博客 2766

wxPython 对话框关闭后进程无法退出的原因

wxPython中不要用对话框作为主程序wx.Dialog,这会导致程序关闭后进程无法退出。一种可行的做法是用wx.Frame代替 转载于:https://www.cnblogs.com/snake-hand/p/3181794.html...

weixin_30405421的博客 434

OpenCV实战之人脸美颜美型(八)——大眼(上)

从大众审美的角度来看,眼睛适当的“变大”会让人显得更加年轻。因此美型中就有一项大眼功能,其效果就是让眼睛适当变大,这章内容就围绕着大眼算法展开。

On my way 1211

wxpython安装失败_deepin 15.6无法安装wxpython 4.0.3

Finished command: build_wx (10m40.552s)Running command: build_pyChecking for /tmp/pip-install-pb6jczsh/wxPython/bin/waf-2.0.8..."/usr/local/python37/bin/python3.7" /tmp/pip-install-pb6jczsh/wxPython/b...

weixin_40008870的博客 701

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

python无法使用_Python无法使用关闭自我。接近(正确)

当我直接单击run按钮而不单击我创建的CV按钮或IR按钮时,我将关闭我的窗口。但若我点击CV按钮或IR按钮,然后点击退出按钮,我将无法工作。我试着移除应用程序主循环()在CV和IR按钮内,但仍不工作。在p/s CV_按钮和IR_按钮将调用另一个.py文件,这是一个GUI。我不知道如何在python中调用main,但至少它可以工作,我甚至不知道是对是错。在def CV_Button(self, ev...

weixin_32475641的博客 234

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WxPython——一些最常见的错误现象及解决方法

摘要:本文总结了wxPython应用程序开发中的常见错误及解决方法,包括模块导入失败、程序崩溃、窗口立即关闭等问题。关键点在于正确安装wxPython模块,确保wx.App对象在创建其他对象前初始化,调用MainLoop()方法,并处理OnInit()中的错误。文章还概述了wxPython程序的基本结构,强调应用程序对象和框架的重要性,以及如何利用标准对话框简化用户交互。这些建议有助于开发者快速诊断和解决wxPython应用中的常见启动问题。

hssjsh的博客 399

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

wxpython 关闭窗口_wxPython窗体的最小化、退出以及移动代码剪辑

def __LayoutTop(self):topSizer = wx.BoxSizer(wx.HORIZONTAL)BtnMinSize = lib.ButtonTool(self.topPanel, -1, wx.Image("img/main/icon_down.jpg",wx.BITMAP_TYPE_JPEG).ConvertToBitmap(), pos=(self.client_wid...

weixin_39850062的博客 768

wxPython窗体的最小化、退出以及移动代码剪辑

def __LayoutTop(self): topSizer = wx.BoxSizer(wx.HORIZONTAL) BtnMinSize = lib.ButtonTool(self.topPanel, -1, wx.Image("img/main/icon_down.jpg",wx.BITMAP_TYPE_JPEG).ConvertToBitmap(), pos=(self.

fxsok244969309的专栏 1251

Py之wxPython:wxPython的简介、安装、使用方法之详细攻略

wxPython是Python编程语言的跨平台GUI工具包。它允许Python程序员创建具有健壮、功能强大的图形用户界面的程序,而且简单、容易。它是作为一组Python扩展模块实现的,这些模块封装了流行的wxWidgets跨平台库的GUI组件,该库是用c++编写的。由于编程语言是Python, wxPython程序很简单,易于编写和理解。像Python和wxWidgets一样,wxPython是开源的,这意味着任何人都可以免费使用它,源代码也可以供任何人查看和修改。

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 1万+

wxpython开发教程_wxpython入门

简介wxPython是Python语言的一套优秀的GUI图形库。允许Python程序员很方便的创建完整的、功能键全的GUI用户界面。 wxPython是作为优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的。使用wxPython创建GUI需要以下五个步骤:导入必须的wxPython包子类化wxPython应用程序类定义一个应用程序的初始化方法创建一个应用程...

weixin_39777404的博客 1334

python wxpython backend wxagg_wxpython+matplotlib:关闭图形挂起python

这个python程序在wxpython窗口中绘制一个图形。它在热情的Python发行版7.3-2中运行得很好,但是当我关闭图时,Python继续运行并且不退出。在我错过了什么?当我创建不使用matplotlib的wxpython gui时,它们在关闭窗口后会正确退出。我想wxpython中的消息循环肯定有我不明白的地方。在# adapted from:# http://wiki.wxpython....

weixin_39954674的博客 151

实战wxPython: 004-为wxPython程序添加菜单栏

菜单栏是在窗口的顶部可以访问的一系列菜单。其继承关系如下图:Append(self, menu, title):将菜单menu添加到菜单栏的末尾。title为菜单的标题(必须非空),执行成功返回True,否则返回False。Check(self, id, check):选中或取消选中菜单项。id为菜单项标识符,check为True时。则表示选中该菜单项,否则表示未选中该菜单项。Enable(self, id, enable):启用或禁用(灰色)菜单项。

seniorwizard的专栏 1579

wxpython 操作图片_wxPython BitmapButton图片按钮的用法

BitmapButton 是一类特殊的按钮,和普通按钮的区别就是该按钮上面不显示文字而是显示图片。下面是 BitmapButton 元素的初始化函数定义:BitmapButton(parent,id=ID_ANY,bitmap=NullBitmap,pos=DefaultPosition,size=DefaultSize,style=BU_AUTODRAW,validator=DefaultVal...

weixin_39639568的博客 940
上一篇: SQL删除树形结构
下一篇: wxpython 拖拽
xugangjava
博客等级 码龄16年 83粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值