社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python+tkinter不允许退出程序的思路和实现

Python小屋 • 9 年前 • 1410 次点击  

思路:基于Python+tkiner的程序,在单机右上角X按钮关闭程序时,会触发'WM_DELETE_WINDOW'消息,如果可以截获这个消息并改变其行为,就可以禁止关闭程序。

具体实现和应用:在我开发的“课堂教学管理系统”中,因为有屏幕广播的功能,所以不允许学生关闭客户端,这样可以在最大程度上保证学生的学习效果(最起码不能在电脑上做学习之外的其他事情)。

def closeWindow():
    tkinter.messagebox.showerror(title='警告',\
                                 message='不许关闭,好好学习!')
    return
root.protocol('WM_DELETE_WINDOW', closeWindow)

上面的代码加入到学生端代码之后,单机右上角X按钮关闭系统时会被禁止,并弹出下面的窗口:

但是这样的实现有个缺陷,如果打开任务管理器然后结束Python进程的话,仍可以关闭程序,不过这可以通过守护进程来避免和解决,后面再单独行文进行介绍。


补充说明:明天开始,连续讲授7天56节课Python,不一定能保证每天发Python技术文章,看情况吧,尽量。


--------------我是分割线-------------

相关阅读:

基于Python的电子教室软件中远程关机功能的原理与实现

Python实现局域网内屏幕广播的技术要点分析


--------------我是分割线-------------

“Python小屋”公众号近期主要活动:

1、Python师资培训班:8月6日-12日,济南,面向全国高校老师和企业朋友,通知详见关于举办2017年暑期全国高校教师 “Python编程及应用”培训班通知,赠送Python教材2本、Python教学PPT超过1600页,Python教学视频140集,Python教学案例300个,以及教学大纲、教案、考试题库等全套资源。补充说明:如果不需要安排住宿的话,5天学费2100元(含午餐)。



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/npQgi4Lq7q
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/2651