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的四种方式
Mar 30 Python
PyQt5每天必学之关闭窗口
Apr 19 Python
python 删除非空文件夹的实例
Apr 26 Python
Python应用库大全总结
May 30 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
Python自动发送邮件的方法实例总结
Dec 08 Python
Python数据存储之 h5py详解
Dec 26 Python
python全局变量引用与修改过程解析
Jan 07 Python
python如何获取apk的packagename和activity
Jan 10 Python
Pytorch中的VGG实现修改最后一层FC
Jan 15 Python
django中的数据库迁移的实现
Mar 16 Python
Python通过递归函数输出嵌套列表元素
Oct 15 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
极典R601SW收音机
2021/03/02 无线电
一家之言的经验之谈php+mysql扎实个人基本功
2008/03/27 PHP
10条PHP高级技巧[修正版]
2011/08/02 PHP
PHP时间和日期函数详解
2015/05/08 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
javascript:void(0)使用探讨
2013/08/27 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
node.js操作mysql简单实例
2017/05/25 Javascript
Javascript中this关键字指向问题的测试与详解
2017/08/11 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
python实现排序算法
2014/02/14 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
利用Python实现Windows定时关机功能
2017/03/21 Python
python版简单工厂模式
2017/10/16 Python
python利用Tesseract识别验证码的方法示例
2019/01/21 Python
python实现多线程端口扫描
2019/08/31 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
英国女装网上商店:I Saw It First
2018/10/18 全球购物
课程改革实施方案
2014/03/16 职场文书
年终总结会议主持词
2014/03/17 职场文书
《飞向蓝天的恐龙》教学反思
2014/04/09 职场文书
个人作风建设自查报告
2014/10/22 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS