日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python清屏插件

發布時間:2023/12/31 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python清屏插件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天在使用PythonGUI時,被清屏所困擾,查閱網上資源發現一個比較簡單的方式。
在python34/Lib/idellib中加入ClearWindow.py。可以到http://bugs.python.org/file14303/ClearWindow.py下載,或者復制以下代碼另存為 ClearWindows.py

# IDLEX EXTENSION ## """ ## Copyright(C) 2011-2012 The Board of Trustees of the University of Illinois. ## All rights reserved. ## ## Developed by: Roger D. Serwy ## University of Illinois ## ## Permission is hereby granted, free of charge, to any person obtaining ## a copy of this software and associated documentation files (the ## "Software"), to deal with the Software without restriction, including ## without limitation the rights to use, copy, modify, merge, publish, ## distribute, sublicense, and/or sell copies of the Software, and to ## permit persons to whom the Software is furnished to do so, subject to ## the following conditions: ## ## + Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimers. ## + Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimers in the ## documentation and/or other materials provided with the distribution. ## + Neither the names of Roger D. Serwy, the University of Illinois, nor ## the names of its contributors may be used to endorse or promote ## products derived from this Software without specific prior written ## permission. ## ## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ## OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ## MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ## IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ## ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF ## CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH ## THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. ## ## ## ## ## Clear Window Extension ## ## About: ## ## It provides "Clear Shell Window" under "Options" ## with ability to undo. ## ## Part of Issue 6143 ## ## """config_extension_def = """ [ClearWindow] enable=1 enable_editor=0 enable_shell=1 [ClearWindow_cfgBindings] clear-window=<Control-Key-l> """jn = lambda x,y: '%i.%i' % (x,y) # join integers to text coordinates sp = lambda x: tuple(map(int, x.split('.'))) # convert tkinter Text coordinate to a line and column tupleimport sys import re from idlelib.UndoDelegator import DeleteCommandansi_re = re.compile(r'\x01?\x1b\[(.*?)m\x02?') def strip_ansi(s):return ansi_re.sub("", s)class ClearWindow:menudefs = [('options', [('Clear Shell Window', '<<clear-window>>'),]),]def __init__(self, editwin):self.editwin = editwinself.text = self.editwin.textself.text.bind("<<clear-window>>", self.clear_window)def clear_window_event(self, ev=None):self.clear_window(ev)return "break"def clear_window(self, event):per = self.editwin.pertext = per.bottomiomark_orig = text.index('iomark')line_io, col_io = sp(iomark_orig)# if cursor is at the prompt, preserve the prompt (multiline)prompt = strip_ansi(sys.ps1)backlines = prompt.count('\n')prompt_start = jn(line_io-backlines, 0)maybe_prompt = text.get(prompt_start, prompt_start + '+%ic' % len(prompt))at_prompt = maybe_prompt == promptif at_prompt:endpos = text.index(prompt_start)else:endpos = text.index('iomark linestart')dump = text.dump('1.0', endpos, all=True)# Add a command to the undo delegatorundo = self.editwin.undoif undo:dc = ClearWindowDeleteCommand('1.0', endpos, dump)undo.addcmd(dc)text.edit_reset() # clear out Tkinter's undo historyclass ClearWindowDeleteCommand(DeleteCommand):def __init__(self, index1, index2, dump):DeleteCommand.__init__(self, index1, index2)self.dump = dumpdef do(self, text):text.delete(self.index1, self.index2)text.see('insert')def redo(self, text):text.delete(self.index1, self.index2)text.see('insert')def undo(self, text):# inspired by "Serializing a text widget" at http://wiki.tcl.tk/9167dump = self.dumptag = {} # remember the index where a tag was activatedfor key, value, index in dump:if key == 'text':text.insert(index, value, '')elif key == 'tagon':tag[value] = indexelif key == 'tagoff':text.tag_add(value, tag[value], index)del tag[value]# extend existing tags to the end positionfor value in tag:text.tag_add(value, tag[value], self.index2)text.see('insert')

然后修改config-extensions.def,在末尾添加

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

這樣一來就可以通過快捷鍵Ctrl+L來進行清屏了。
網上有一款集成了很多插件的GUI叫 IdleX,將其解壓之后放在 Python34/Lib/idlex-1.13,通過python idlex.py可以直接運行,有興趣的同學可以試試。官網 http://idlex.sourceforge.net
或者大家有更好的方法可以留言一起交流學習。

總結

以上是生活随笔為你收集整理的python清屏插件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。