如何修改pygame_gui中UITextEntryLine的文字与背景颜色
修改pygame_gui中文本框的背景色与文字颜色
pygame_gui的控件样式可通过直接传入样式参数或主题配置修改,以下是针对需求的具体方案:
方案一:单个控件直接指定样式
在创建UITextEntryLine时,通过style参数直接定义文字颜色和背景色,修改后的完整代码如下:
import pygame_gui, pygame pygame.init() screen = pygame.display.set_mode((500,500)) clock = pygame.time.Clock() manager = pygame_gui.UIManager((500,500)) manager.set_window_resolution((500,500)) rect_help = pygame.Rect(200, 200, 100, 50) # 添加style参数自定义颜色 text_box = pygame_gui.elements.UITextEntryLine( relative_rect=rect_help, manager=manager, object_id='#text', style={ 'text_colour': pygame.Color('black'), # 设置文字颜色为黑色 'normal_bg': pygame.Color('lightblue') # 设置默认状态背景色为浅蓝色 } ) run=True while run: UI_refresh = clock.tick(30)/1000 for event in pygame.event.get(): if event.type==pygame.QUIT: run=False elif event.type==pygame_gui.UI_TEXT_ENTRY_FINISHED and event.ui_object_id == '#text': print(text_box.text) manager.process_events(event) manager.update(UI_refresh) screen.fill('white') manager.draw_ui(screen) pygame.display.update()
关键参数说明
text_colour:控制文本框内的文字颜色,支持pygame.Color对象、颜色字符串(如'red')或RGB元组(如(255,0,0))normal_bg:控制文本框未被选中时的背景色,还可额外设置hover_bg(鼠标悬停时)、focused_bg(选中激活时)等状态的背景色
方案二:主题配置文件(批量统一风格)
如果需要多个控件保持一致样式,可创建JSON主题文件(如theme.json):
{ "UITextEntryLine": { "text_colour": "#000000", "normal_bg": "#ADD8E6" } }
初始化UIManager时加载该主题即可:
manager = pygame_gui.UIManager((500,500), theme_path='theme.json')
内容的提问来源于stack exchange,提问作者plsHelpMe
相关产品推荐
相关产品推荐

