Python-IDLE实现清屏
1 1、将下面文件复制到命名为ClearWindow.py的文件下,移动到 …Python\Python36-32\Lib\idlelib下。 2 ################################################################################### 3 """ 4 5 Clear Window Extension 6 Version: 0.2 7 8 Author: Roger D. Serwy 9 roger.serwy@gmail.com 10 11 Date: 2009-06-14 12 13 It provides "Clear Shell Window" under "Options" 14 with ability to undo. 15 16 Add these lines to config-extensions.def 17 18 [ClearWindow] 19 enable=1 20 enable_editor=0 21 enable_shell=1 22 [ClearWindow_cfgBindings] 23 clear-window=<Control-Key-l> 24 25 26 """ 27 28 class ClearWindow: 29 30 menudefs = [ 31 ('options', [None, 32 ('Clear Shell Window', '<<clear-window>>'), 33 ]),] 34 35 def __init__(self, editwin): 36 self.editwin = editwin 37 self.text = self.editwin.text 38 self.text.bind("<<clear-window>>", self.clear_window2) 39 40 self.text.bind("<<undo>>", self.undo_event) # add="+" doesn't work 41 42 def undo_event(self, event): 43 text = self.text 44 45 text.mark_set("iomark2", "iomark") 46 text.mark_set("insert2", "insert") 47 self.editwin.undo.undo_event(event) 48 49 # fix iomark and insert 50 text.mark_set("iomark", "iomark2") 51 text.mark_set("insert", "insert2") 52 text.mark_unset("iomark2") 53 text.mark_unset("insert2") 54 55 56 def clear_window2(self, event): # Alternative method 57 # work around the ModifiedUndoDelegator 58 text = self.text 59 text.undo_block_start() 60 text.mark_set("iomark2", "iomark") 61 text.mark_set("iomark", 1.0) 62 text.delete(1.0, "iomark2 linestart") 63 text.mark_set("iomark", "iomark2") 64 text.mark_unset("iomark2") 65 text.undo_block_stop() 66 if self.text.compare('insert', '<', 'iomark'): 67 self.text.mark_set('insert', 'end-1c') 68 self.editwin.set_line_and_column() 69 70 def clear_window(self, event): 71 # remove undo delegator 72 undo = self.editwin.undo 73 self.editwin.per.removefilter(undo) 74 75 # clear the window, but preserve current command 76 self.text.delete(1.0, "iomark linestart") 77 if self.text.compare('insert', '<', 'iomark'): 78 self.text.mark_set('insert', 'end-1c') 79 self.editwin.set_line_and_column() 80 81 # restore undo delegator 82 self.editwin.per.insertfilter(undo) 83 ################################################################################### 84 2、接下来就是要在 …Python\Python36-32\Lib\idlelib文件夹下,用记事本打开文件config-extensions.def,在文件最后添加一下代码: 85 [ClearWindow] 86 enable=1 87 enable_editor=0 88 enable_shell=1 89 [ClearWindow_cfgBindings] 90 clear-window=<Control-Key-l>