#python #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()
Я пытаюсь найти способ сказать это: если выбран текст «В книге» в списке, то поле ввода рядом с опцией теперь должно иметь красный цвет фона.
Ответ №1:
Проверьте , находится ли содержимое списка 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),
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()
Комментарии:
1. Я внес некоторые правки в вопрос, любая помощь была бы отличной.
2. «поле ввода рядом с ОПЦИЕЙ» ? ОПЦИЯ-это последнее поле ввода … Обновите код, как указано выше, если для ПАРАМЕТРА поле ввода.