You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 09:35:05