Python IDLE清空窗口的实例


Posted in Python onJune 25, 2018

使用Python IDLE时发现并没有清空当前窗口的快捷键,也没有像 clear 这样的命令,使用非常不便。

新建一个 ClearWindow.py脚本,源码如下:

"""

Clear Window Extension
Version: 0.2

Author: Roger D. Serwy
    roger.serwy@gmail.com

Date: 2009-06-14

It provides "Clear Shell Window" under "Options"
with ability to undo.

Add these lines to config-extensions.def

[ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=<Control-Key-l>

"""

class ClearWindow:

  menudefs = [
    ('options', [None,
        ('Clear Shell Window', '<<clear-window>>'),
    ]),]

  def __init__(self, editwin):
    self.editwin = editwin
    self.text = self.editwin.text
    self.text.bind("<<clear-window>>", self.clear_window2)

    self.text.bind("<<undo>>", self.undo_event) # add="+" doesn't work

  def undo_event(self, event):
    text = self.text

    text.mark_set("iomark2", "iomark")
    text.mark_set("insert2", "insert")
    self.editwin.undo.undo_event(event)

    # fix iomark and insert
    text.mark_set("iomark", "iomark2")
    text.mark_set("insert", "insert2")
    text.mark_unset("iomark2")
    text.mark_unset("insert2")

  def clear_window2(self, event): # Alternative method
    # work around the ModifiedUndoDelegator
    text = self.text
    text.undo_block_start()
    text.mark_set("iomark2", "iomark")
    text.mark_set("iomark", 1.0)
    text.delete(1.0, "iomark2 linestart")
    text.mark_set("iomark", "iomark2")
    text.mark_unset("iomark2")
    text.undo_block_stop()
    if self.text.compare('insert', '<', 'iomark'):
      self.text.mark_set('insert', 'end-1c')
    self.editwin.set_line_and_column()

  def clear_window(self, event):
    # remove undo delegator
    undo = self.editwin.undo
    self.editwin.per.removefilter(undo)

    # clear the window, but preserve current command
    self.text.delete(1.0, "iomark linestart")
    if self.text.compare('insert', '<', 'iomark'):
      self.text.mark_set('insert', 'end-1c')
    self.editwin.set_line_and_column()

    # restore undo delegator
    self.editwin.per.insertfilter(undo)

拷贝ClearWindow.py文件,放在Python安装目录Python XXX\Lib\idlelib下面(XXX为你的python版本,比如2.7)。

记事本打开Python XXX\Lib\idlelib目录下的config-extensions.def(IDLE扩展的配置文件), 为防止出错,你可以在打开它之前先copy一个备份 。

修改config-extensions.def ,在末尾添加如下内容,然后保存退出:

[ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=<Control-Key-;>

打开Python的IDLE,options选项中就可以看到增加了Clear shell window ctrl+;。

在IDLE输入代码,然后按Ctrl+;(是指Ctrl和;),发现刚输入代码可以被清除了。

快捷键Ctrl+;,可修改成其他键,将

clear-window=<Control-Key-;>

里的Control和;修改成其他键即可。

以上这篇Python IDLE清空窗口的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 示例分享---逻辑推理编程解决八皇后
Jul 20 Python
python实现微信跳一跳辅助工具步骤详解
Jan 04 Python
python中的闭包函数
Feb 09 Python
用Python下载一个网页保存为本地的HTML文件实例
May 21 Python
使用Python机器学习降低静态日志噪声
Sep 29 Python
Pandas分组与排序的实现
Jul 23 Python
Django stark组件使用及原理详解
Aug 22 Python
Python3实现zip分卷压缩过程解析
Oct 09 Python
django中media媒体路径设置的步骤
Nov 15 Python
Python3标准库之dbm UNIX键-值数据库问题
Mar 24 Python
基于python实现简单C/S模式代码实例
Sep 14 Python
python中tkinter复选框使用操作
Nov 11 Python
Python设置在shell脚本中自动补全功能的方法
Jun 25 #Python
PyCharm代码整体缩进,反向缩进的方法
Jun 25 #Python
Python代码块批量添加Tab缩进的方法
Jun 25 #Python
对python中for、if、while的区别与比较方法
Jun 25 #Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 #Python
python 字符串和整数的转换方法
Jun 25 #Python
python range()函数取反序遍历sequence的方法
Jun 25 #Python
You might like
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
用js生产批量批处理执行命令
2008/07/28 Javascript
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
jQuery.query.js 取参数的两点问题分析
2012/08/06 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
[01:28]2014DOTA2国际邀请赛中国区预选赛四大豪门直升机抵达会场
2014/05/24 DOTA
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
python基于queue和threading实现多线程下载实例
2014/10/08 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
2016/09/18 Python
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
通过shell+python实现企业微信预警
2019/03/07 Python
Python3.5局部变量与全局变量作用域实例分析
2019/04/30 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
Python RabbitMQ实现简单的进程间通信示例
2020/07/02 Python
解决PyCharm无法使用lxml库的问题(图解)
2020/12/22 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
html5是什么_动力节点Java学院整理
2017/07/07 HTML / CSS
详解移动端Html5页面中1px边框的几种解决方法
2018/07/24 HTML / CSS
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
Python里面如何拷贝一个对象
2014/02/17 面试题
给分销商的致歉信
2014/01/14 职场文书
物理力学求职信
2014/02/18 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
无婚姻登记记录证明
2015/06/18 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python