是否可以在这个带有居中文本的框内部使用不同的颜色?
Is it possible to have the inside of this box with centred text a different colour?
我是 Python 的新手,我的 Pi 4 显示器使用 Pygame 作为显示器。我有一个文本居中的框,如果可能的话,我希望框的内部背景可以是不同的颜色
我希望盒子的背景是 RGB (141,180,235)
主要显示是 BACKGROUND_COLOR = pg.Color(42,117,198) 这就是这个盒子的内部。
这可能吗?
box = pg.Rect(645, 75, 180, 30)
pg.draw.rect(screen, (255,255,255,), box , 1) # draw windspeed box
if skyData.status == sky.STATUS_OK:
ren = font.render("Wind Direction {}°".format(forecastData.angle), 1, pg.Color('black'), pg.Color(134,174,230))
else:
ren = font.render("", 1, pg.Color('black'), pg.Color(185,208,240))
ren_rect = ren.get_rect(center = box.center)
screen.blit(ren, ren_rect)
pg.draw.line(screen, pg.Color('black'), (644, 74), (825, 74)) #shade box
pg.draw.line(screen, pg.Color('black'), (644, 74), (644, 104)) #shade box
这是一个文本居中的 BOX,因此仅更改文本的背景颜色是行不通的
如果只有一个 - 颜色不同以显示变化,就会发生这种情况
render()
的第4个参数是背景颜色。如果您想绘制一个具有不同背景的框,只需使用不同的背景颜色即可。如果跳过背景参数,背景是透明的。
使用 pygame.draw.rect
绘制具有特定颜色的矩形。在中心绘制一个透明背景的文本:
text = ""
if skyData.status == sky.STATUS_OK:
text = "Wind Direction {}°".format(forecastData.angle)
ren = font.render(text, 1, pg.Color('black'))
box = pg.Rect(645, 75, 180, 30)
pg.draw.rect(screen, (141,180,235), box)
pg.draw.rect(screen, (255,255,255,), box, 1)
ren_rect = ren.get_rect(center = box.center)
screen.blit(ren, ren_rect)
pg.draw.line(screen, pg.Color('black'), (644, 74), (825, 74)) #shade box
pg.draw.line(screen, pg.Color('black'), (644, 74), (644, 104)) #shade box
我是 Python 的新手,我的 Pi 4 显示器使用 Pygame 作为显示器。我有一个文本居中的框,如果可能的话,我希望框的内部背景可以是不同的颜色 我希望盒子的背景是 RGB (141,180,235) 主要显示是 BACKGROUND_COLOR = pg.Color(42,117,198) 这就是这个盒子的内部。
这可能吗?
box = pg.Rect(645, 75, 180, 30)
pg.draw.rect(screen, (255,255,255,), box , 1) # draw windspeed box
if skyData.status == sky.STATUS_OK:
ren = font.render("Wind Direction {}°".format(forecastData.angle), 1, pg.Color('black'), pg.Color(134,174,230))
else:
ren = font.render("", 1, pg.Color('black'), pg.Color(185,208,240))
ren_rect = ren.get_rect(center = box.center)
screen.blit(ren, ren_rect)
pg.draw.line(screen, pg.Color('black'), (644, 74), (825, 74)) #shade box
pg.draw.line(screen, pg.Color('black'), (644, 74), (644, 104)) #shade box
这是一个文本居中的 BOX,因此仅更改文本的背景颜色是行不通的
如果只有一个 - 颜色不同以显示变化,就会发生这种情况
render()
的第4个参数是背景颜色。如果您想绘制一个具有不同背景的框,只需使用不同的背景颜色即可。如果跳过背景参数,背景是透明的。
使用 pygame.draw.rect
绘制具有特定颜色的矩形。在中心绘制一个透明背景的文本:
text = ""
if skyData.status == sky.STATUS_OK:
text = "Wind Direction {}°".format(forecastData.angle)
ren = font.render(text, 1, pg.Color('black'))
box = pg.Rect(645, 75, 180, 30)
pg.draw.rect(screen, (141,180,235), box)
pg.draw.rect(screen, (255,255,255,), box, 1)
ren_rect = ren.get_rect(center = box.center)
screen.blit(ren, ren_rect)
pg.draw.line(screen, pg.Color('black'), (644, 74), (825, 74)) #shade box
pg.draw.line(screen, pg.Color('black'), (644, 74), (644, 104)) #shade box