如何在PySimpleGUI中为事件文本设置三位RGB颜色值
在PySimpleGUI中动态设置文本RGB颜色的方法
PySimpleGUI的text_color参数不直接接受元组形式的RGB值(比如(100,100,100)),你可以通过以下两种可行方式实现需求:
方法1:将RGB值转换为十六进制字符串
先把RGB元组转换成#RRGGBB格式的十六进制字符串,再传递给text_color。可以写一个简单的转换函数来批量处理:
def rgb_to_hex(rgb): # 将RGB整数转换为两位十六进制字符串,拼接后返回 return f"#{rgb[0]:02x}{rgb[1]:02x}{rgb[2]:02x}"
修改你的事件处理代码:
elif event == "PDF Icon Color": print("Finding color") # 假设这里是你识别到的像素RGB颜色 target_rgb = (100, 100, 100) # 转换为十六进制颜色字符串 hex_color = rgb_to_hex(target_rgb) window["PDF"].update(text_color=hex_color)
方法2:使用rgb(R,G,B)格式的字符串
PySimpleGUI支持直接传入"rgb(R,G,B)"格式的颜色字符串,其中R、G、B是0-255的整数:
elif event == "PDF Icon Color": print("Finding color") window["PDF"].update(text_color="rgb(100,100,100)")
两种方法都能实现动态文本颜色变化,你可以根据自己的代码习惯选择。当你从像素识别得到RGB值后,只需将其转换为对应格式,再调用update方法更新文本颜色即可。
内容的提问来源于stack exchange,提问作者Jacob Mullen
相关产品推荐
相关产品推荐

