pygame 实现文本框的程序
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
pygame是python的一个图形库,它的很多操作,基本上都是画图操作。对于文本的支持比较少。wxpython对于窗口界面很好实现,但是对于画图的支持又不是那么给力。
今天我们就 自己来用pygame自己做一个文本框。
目标,在窗口里划定一块区域为文本框。有边框,能输入字符。能自动换行,能用“enter”键主动换行。如果字符数较多,文本框会自动扩大。
提示:以下是本篇文章正文内容,下面案例可供参考
程序由两个py文件。第一个,命名为 draw.py。
定义了文本框类 inputBox。
实现 了,对键盘的响应方式。
以及画出 文本框的方式。
import pygame
import os
wenbenkuang_width=200
wenbenkuang_height=100
class InputBox:
def __init__(self, rect: pygame.Rect = pygame.Rect(100, 100, wenbenkuang_width, wenbenkuang_height)) -> None:
"""
rect,传入矩形实体,传达输入框的位置和大小
"""
self.boxBody: pygame.Rect = rect
self.color_inactive = pygame.Color('lightskyblue3') # 未被选中的颜色
self.color_active = pygame.Color('dodgerblue2') # 被选中的颜色
self.color = self.color_inactive # 当前颜色,初始为未激活颜色
self.active = False
self.text = ''
self.done = False
self.font = pygame.font.Font(None, 32)
self.cursor=pygame.Rect(self.boxBody.x,self.boxBody.y,1,1)
def dealEvent(self, event: pygame.event.Event):
font = pygame.freetype.SysFont('C:/Win