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迭代器的使用方法实例
Nov 21 Python
python字符串加密解密的三种方法分享(base64 win32com)
Jan 19 Python
Python实现的一个简单LRU cache
Sep 26 Python
Python 实现淘宝秒杀的示例代码
Jan 02 Python
Python实现扣除个人税后的工资计算器示例
Mar 26 Python
Python安装pycurl失败的解决方法
Oct 15 Python
详解python中的Turtle函数库
Nov 19 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
pytorch: Parameter 的数据结构实例
Dec 31 Python
openCV提取图像中的矩形区域
Jul 21 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
Jan 27 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
php文件夹的创建与删除方法
2015/01/24 PHP
laravel5.6实现数值转换
2019/10/23 PHP
用js查找法实现当前栏目的高亮显示的代码
2007/11/24 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
2013/04/26 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
2015/12/26 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
浅谈Vue2.0父子组件间事件派发机制
2018/01/08 Javascript
vue插件实现v-model功能
2018/09/10 Javascript
angular 服务的单例模式(依赖注入模式下)详解
2018/10/22 Javascript
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
python基础教程之分支、循环简单用法
2016/06/16 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
Python常见的pandas用法demo示例
2019/03/16 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
2014年幼儿园植树节活动方案
2014/03/02 职场文书
公司新年寄语
2014/04/04 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
领导班子三严三实对照检查材料
2014/09/25 职场文书
幼师中班个人总结
2015/02/12 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
Rust中的Struct使用示例详解
2022/08/14 Javascript