IDLE扩展实现清屏ClearWindow

​在IDLE中要实现清屏的功能,可通过以下步骤完成功能扩展:

  • 一、下载https://bugs.python.org/file14116/ClearWindow.py

复制代码保存成为ClearWindow.py文件

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_window)

   def clear_window2(self, event): # Alternative method
       # work around the ModifiedUndoDelegator
       text = self.text
       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")

       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安装目录下的Lib/idlelib中,如C:\Python\Python37\Lib\idlelib

  • 三、用记事本编辑config-extensions.def,在文件末尾添加如下代码,启用扩展。

[ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=<Control-Key-w>

猜你喜欢

转载自blog.csdn.net/zbguolei/article/details/111935057
今日推荐