如何解决在 PySimpleGUI 中更改输入框的背景颜色
import PySimpleGUI as sg
import datetime
from datetime import date
columns = ["TYPE","DIRECTION","DATE","OPTION"]
param = (20,3) # size of the main window
def GUI():
sg.theme('Dark brown 1')
listing = [sg.Text(u,size = param) for u in columns]
core = [
sg.ListBox(['In Book','New Trade','Old Book'],enable_events=False,key='TYPE',background_color='red',size = (20,1)),sg.Input(size = param),sg.Input(size = param,key='OPTION')]
mesh = [[x,y] for (x,y) in list(zip(listing,core))]
layout =[[sg.Button("SEND")]]+ mesh
window = sg.Window('Trade Entry System',layout,font='Courier 12').Finalize()
while True:
event,values = window.read()
if event == sg.WINDOW_CLOSED:
break
elif event == "SEND":
break
elif event == "TYPE":
if values[event] == 'In Book':
window["OPTION"].update(background_color='red')
else:
print("OVER")
window.close()
GUI()
我试图找到一种方法来说明:如果选择了列表框中的文本“在书中”,则选项旁边的输入框现在应该具有红色背景色。
解决方法
当事件来自列表框TYPE
时,在事件循环中检查列表框['EQUITY']
的内容是否为TYPE
,然后使用选项调用输入update
的方法OPTION
background='red'
。
import PySimpleGUI as sg
import datetime
from datetime import date
columns = ["TYPE","DIRECTION","DATE","OPTION"]
param = (20,3) # size of the main window
def GUI():
sg.theme('Dark Brown 1')
listing = [sg.Text(u,size = param) for u in columns]
core = [
sg.Listbox(['In Book','New Trade','Old Book'],enable_events=True,key='TYPE',background_color='red',size = (20,3)),sg.Input(size = param),sg.Input(size = param,key='OPTION')]
mesh = [[x,y] for (x,y) in list(zip(listing,core))]
layout =[[sg.Button("SEND")]]+ mesh
window = sg.Window('Trade Entry System',layout,font='Courier 12').Finalize()
while True:
event,values = window.read()
if event == sg.WINDOW_CLOSED:
break
elif event == "SEND":
break
elif event == "TYPE":
if values[event] == ['In Book']:
window["OPTION"].update(background_color='red')
else:
window["OPTION"].update(background_color=sg.theme_input_background_color())
else:
print("OVER")
window.close()
GUI()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。