在 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()
我有以下代码:
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()