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 相关文章推荐
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
python中numpy.zeros(np.zeros)的使用方法
Nov 07 Python
Django2.1.3 中间件使用详解
Nov 26 Python
python与字符编码问题
May 24 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
Jun 24 Python
Python openpyxl模块原理及用法解析
Jan 19 Python
tensorflow实现残差网络方式(mnist数据集)
May 26 Python
python中pow函数用法及功能说明
Dec 04 Python
Python3+Appium安装及Appium模拟微信登录方法详解
Feb 16 Python
Python 多线程之threading 模块的使用
Apr 14 Python
Python数组变形的几种实现方法
May 30 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获取MSN好友列表类的实现代码
2013/06/23 PHP
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
ThinkPHP的常用配置选项汇总
2016/03/24 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
JS获取input file绝对路径的方法(推荐)
2016/08/02 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
2017/01/16 Javascript
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
小程序实现多个选项卡切换
2020/06/19 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
Python根据服务获取端口号的方法
2019/09/25 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
我爱我校演讲稿
2014/05/21 职场文书
法学求职信
2014/06/22 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
调解协议书范本
2016/03/21 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android