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小技巧之批量抓取美女图片
Jun 06 Python
Python 不同对象比较大小示例探讨
Aug 21 Python
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 Python
深入浅出分析Python装饰器用法
Jul 28 Python
Python调用C# Com dll组件实战教程
Oct 12 Python
python实现简单登陆系统
Oct 18 Python
anaconda如何查看并管理python环境
Jul 05 Python
python 直接赋值和copy的区别详解
Aug 07 Python
python实现图片插入文字
Nov 26 Python
Python sys模块常用方法解析
Feb 20 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
Feb 06 Python
Python实现Excel自动分组合并单元格
Feb 22 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
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
angularJS 入门基础
2015/02/09 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
5 种JavaScript编码规范
2018/01/30 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
swiper实现导航滚动效果
2020/12/13 Javascript
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
python实现的各种排序算法代码
2013/03/04 Python
python中黄金分割法实现方法
2015/05/06 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
python中线程和进程有何区别
2020/06/17 Python
python字符串的index和find的区别详解
2020/06/20 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
网络程序员自荐信
2014/01/25 职场文书
招聘专员岗位职责
2014/03/07 职场文书
事假请假条范文
2014/04/11 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
安全例会汇报材料
2014/08/23 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
个人总结与自我评价
2015/02/14 职场文书
企业安全生产规章制度
2015/08/06 职场文书
AngularJS实现多级下拉框
2022/03/25 Javascript