gpt4 book ai didi

python - urwid 动态更改调色板颜色

转载 作者:行者123 更新时间:2023-12-01 04:17:21 29 4
gpt4 key购买 nike

在 urwid 中,如何动态更改调色板的颜色?例如,假设我想在按下“C”按钮时进行更改:

import urwid

def changeColor(key):
if key in ('c', 'C'):
c = "light gray"

c = 'black'

palette = [("text", "black", c)]

text = urwid.Text(("text", u'Hello humans'), align='center')
fill = urwid.Filler(text)
urwid.MainLoop(fill, palette, unhandled_input=changeColor).run()

最佳答案

您可以使用register_palette_entry。它是在 Screen 中找到的方法,可作为 MainLoop 的公共(public)成员使用。

使用选择的参数调用此方法后,请确保重新绘制屏幕 - 例如,使用 screen.clear()

下面是一个工作示例 - 点击 c 在浅红色和浅灰色背景之间切换。

import urwid

class Main(object):
def __init__(self):
self.flip = False
palette = [('text', 'black', 'light red')]
text = urwid.Text(('text', u'Hello humans'), align='center')
self.fill = urwid.Filler(text)
self.loop = urwid.MainLoop(self.fill, palette, unhandled_input=self.key_press)
self.loop.run()

def key_press(self, key):
if key in ('c', 'C'):
self.flip = not self.flip
self.loop.screen.register_palette_entry('text', 'black', ['light red', 'light gray'][self.flip])
self.loop.screen.clear()
if key in ('q', 'Q'):
raise urwid.ExitMainLoop()

Main()

关于python - urwid 动态更改调色板颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34178960/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com