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 相关文章推荐
总结用Pdb库调试Python的方式及常用的命令
Aug 18 Python
Python win32com 操作Exce的l简单方法(必看)
May 25 Python
浅谈Python使用Bottle来提供一个简单的web服务
Dec 27 Python
Python基于百度AI的文字识别的示例
Apr 21 Python
Django实现发送邮件功能
Jul 18 Python
Django框架model模型对象验证实现方法分析
Oct 02 Python
python实现堆排序的实例讲解
Feb 21 Python
VSCode配合pipenv搞定虚拟环境的实现方法
May 17 Python
python属于解释语言吗
Jun 11 Python
Python利用matplotlib绘制折线图的新手教程
Nov 05 Python
pytorch实现ResNet结构的实例代码
May 17 Python
Python实现科学占卜 让视频自动打码
Apr 09 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
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
laravel学习教程之关联模型
2016/07/30 PHP
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
深入理解Node.js的HTTP模块
2016/10/12 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
解决python给列表里添加字典时被最后一个覆盖的问题
2019/01/21 Python
简单了解Django ContentType内置组件
2019/07/23 Python
python 实现识别图片上的数字
2019/07/30 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
2020/03/09 Python
Python turtle库的画笔控制说明
2020/06/28 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
佳能德国网上商店:Canon德国
2017/03/18 全球购物
Java的五个基础面试题
2016/02/26 面试题
五一家具促销方案
2014/01/10 职场文书
汇源肾宝广告词
2014/03/20 职场文书
淘宝好评语大全
2014/05/05 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python