在 PySimpleGUI 中更改输入框的背景颜色

Changing background color of input boxes in 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),
    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()

我想找到一种表达方式:如果列表框中的文本 'In Book' 被选中,那么 OPTION 旁边的输入框现在应该有红色背景色。

当事件来自列表框TYPE时,在事件循环中检查列表框TYPE的内容是否为['EQUITY'],然后调用输入OPTION的方法update带有选项 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),
    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()