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

📄 textedit.py

📁 minimal python variant for small footprint apps like embedded apps
💻 PY
字号:
# Text editing widget# NB: this always assumes fixed bounds.# For auto-growing TextEdit windows, different code would be needed.from stdwinevents import *class TextEdit:	#	def create(self, parent, (cols, rows)):		parent.addchild(self)		self.parent = parent		self.cols = cols		self.rows = rows		self.text = ''		# Creation of the editor is done in realize()		self.editor = None		self.dh = self.dv = 0		return self	#	def createboxed(self, parent, (cols, rows), (dh, dv)):		self = self.create(parent, (cols, rows))		self.dh = max(0, dh)		self.dv = max(0, dv)		return self	#	def settext(self, text):		self.editor.settext(text)	#	def gettext(self):		return self.editor.gettext(text)	#	# Downcalls from parent to child	#	def destroy(self):		del self.parent		del self.editor		del self.window	#	def getminsize(self, m, (width, height)):		width = max(0, width - 2*self.dh)		height = max(0, height - 2*self.dv)		if width > 0 and self.editor:			(left, top), (right, bottom) = self.editor.getrect()			act_width, act_height = right - left, bottom - top			if width >= act_width:				width = width + 2*self.dh				height = max(height, act_height) + 2*self.dv				return width, height		width = max(width, self.cols*m.textwidth('in')/2) + 2*self.dh		height = max(height, self.rows*m.lineheight()) + 2*self.dv		return width, height	#	def setbounds(self, bounds):		self.bounds = bounds		if self.editor:			(left, top), (right, bottom) = bounds			left = left + self.dh			top = top + self.dv			right = right - self.dh			bottom = bottom - self.dv			self.editor.move((left, top), (right, bottom))			if self.dh and self.dv:				(left, top), (right, bottom) = bounds				left = left + 1				top = top + 1				right = right - 1				bottom = bottom - 1				bounds = (left, top), (right, bottom)			self.editor.setview(bounds)	#	def getbounds(self):		return self.bounds	#	def realize(self):		self.window = self.parent.getwindow()		(left, top), (right, bottom) = self.bounds		left = left + self.dh		top = top + self.dv		right = right - self.dh		bottom = bottom - self.dv		self.editor = \			self.window.textcreate((left, top), (right, bottom))		self.editor.setactive(0)		bounds = self.bounds		if self.dh and self.dv:			(left, top), (right, bottom) = bounds			left = left + 1			top = top + 1			right = right - 1			bottom = bottom - 1			bounds = (left, top), (right, bottom)		self.editor.setview(bounds)		self.editor.settext(self.text)		self.parent.need_mouse(self)		self.parent.need_keybd(self)		self.parent.need_altdraw(self)	#	def draw(self, d, area):		if self.dh and self.dv:			d.box(self.bounds)	#	def altdraw(self, area):		self.editor.draw(area)	#	# Event downcalls	#	def mouse_down(self, detail):		x = self.editor.event(WE_MOUSE_DOWN, self.window, detail)	#	def mouse_move(self, detail):		x = self.editor.event(WE_MOUSE_MOVE, self.window, detail)	#	def mouse_up(self, detail):		x = self.editor.event(WE_MOUSE_UP, self.window, detail)	#	def keybd(self, type, detail):		x = self.editor.event(type, self.window, detail)	#	def activate(self):		self.editor.setfocus(0, 30000)		self.editor.setactive(1)	#	def deactivate(self):		self.editor.setactive(0)	#

⌨️ 快捷键说明

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