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 解析XML python模块xml.dom解析xml实例代码
Feb 07 Python
python中django框架通过正则搜索页面上email地址的方法
Mar 21 Python
分享给Python新手们的几道简单练习题
Sep 21 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 Python
Win10下Python3.7.3安装教程图解
Jul 08 Python
pandas中的数据去重处理的实现方法
Feb 10 Python
解决 jupyter notebook 回车换两行问题
Apr 15 Python
python开根号实例讲解
Aug 30 Python
Python装饰器如何实现修复过程解析
Sep 05 Python
python搜索算法原理及实例讲解
Nov 18 Python
Matplotlib绘制条形图的方法你知道吗
Mar 21 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
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
利用js实现禁止复制文本信息
2015/06/03 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
javascript对象的相关操作小结
2016/05/16 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
vue 做移动端微信公众号采坑经验记录
2018/04/26 Javascript
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
vue实现在进行增删改操作后刷新页面
2020/08/05 Javascript
Node.js文本文件BOM头的去除方法
2020/11/22 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
Python程序中的观察者模式结构编写示例
2016/05/27 Python
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
Python3实现发送QQ邮件功能(文本)
2017/12/15 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
pandas中的series数据类型详解
2019/07/06 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
一个C/C++编程面试题
2013/11/10 面试题
应用化学专业职业生涯规划书
2013/12/31 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
地震慰问信
2015/02/14 职场文书
复兴之路观后感
2015/06/02 职场文书
团支部组织委员竞选稿
2015/11/21 职场文书
读完《骆驼祥子》的观后感!
2019/07/05 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python