⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textwin.py

📁 minimal python variant for small footprint apps like embedded apps
💻 PY
字号:
# Module 'textwin'# Text windows, a subclass of gwinimport stdwinimport gwinfrom stdwinevents import *def fixsize(w):	docwidth, docheight = w.text.getrect()[1]	winheight = w.getwinsize()[1]	if winheight > docheight: docheight = winheight	w.setdocsize(0, docheight)	fixeditmenu(w)def cut(w, m, id):	s = w.text.getfocustext()	if s:		stdwin.setcutbuffer(0, s)		w.text.replace('')		fixsize(w)def copy(w, m, id):	s = w.text.getfocustext()	if s:		stdwin.setcutbuffer(0, s)		fixeditmenu(w)def paste(w, m, id):	w.text.replace(stdwin.getcutbuffer(0))	fixsize(w)def addeditmenu(w):	m = w.editmenu = w.menucreate('Edit')	m.action = []	m.additem('Cut', 'X')	m.action.append(cut)	m.additem('Copy', 'C')	m.action.append(copy)	m.additem('Paste', 'V')	m.action.append(paste)def fixeditmenu(w):	m = w.editmenu	f = w.text.getfocus()	can_copy = (f[0] < f[1])	m.enable(1, can_copy)	if not w.readonly:		m.enable(0, can_copy)		m.enable(2, (stdwin.getcutbuffer(0) <> ''))def draw(w, area):			# Draw method	w.text.draw(area)def size(w, newsize):			# Size method	w.text.move((0, 0), newsize)	fixsize(w)def close(w):				# Close method	del w.text  # Break circular ref	gwin.close(w)def char(w, c):				# Char method	w.text.replace(c)	fixsize(w)def backspace(w):			# Backspace method	void = w.text.event(WE_COMMAND, w, WC_BACKSPACE)	fixsize(w)def arrow(w, detail):			# Arrow method	w.text.arrow(detail)	fixeditmenu(w)def mdown(w, detail):			# Mouse down method	void = w.text.event(WE_MOUSE_DOWN, w, detail)	fixeditmenu(w)def mmove(w, detail):			# Mouse move method	void = w.text.event(WE_MOUSE_MOVE, w, detail)def mup(w, detail):			# Mouse up method	void = w.text.event(WE_MOUSE_UP, w, detail)	fixeditmenu(w)def activate(w):			# Activate method	fixeditmenu(w)def open(title, str):			# Display a string in a window	w = gwin.open(title)	w.readonly = 0	w.text = w.textcreate((0, 0), w.getwinsize())	w.text.replace(str)	w.text.setfocus(0, 0)	addeditmenu(w)	fixsize(w)	w.draw = draw	w.size = size	w.close = close	w.mdown = mdown	w.mmove = mmove	w.mup = mup	w.char = char	w.backspace = backspace	w.arrow = arrow	w.activate = activate	return wdef open_readonly(title, str):		# Same with char input disabled	w = open(title, str)	w.readonly = 1	w.char = w.backspace = gwin.nop	# Disable Cut and Paste menu item; leave Copy alone	w.editmenu.enable(0, 0)	w.editmenu.enable(2, 0)	return w

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -