根据 PysimpleGUI 中的输入值填写输入框
Fill in Input boxes based on input value in PysimpleGUI
这是我的代码:
import PySimpleGUI as sg
import datetime
from datetime import date
import pandas as pd
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.Input(size = param),
sg.Input(size = param),
sg.Input(size = param),
sg.Input(size = param)]
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 == "SEND":
data = values
a = list(data.values())
df = pd.DataFrame(a, index = columns)
df = df.transpose()
print(df)
else:
print("OVER")
break
window.close()
GUI()
我想做的是,例如,如果字符串 'STOCK' 被输入到 TYPE 输入中,那么剩下的 3 个输入框应该填充预定义的值。例如,DIRECTION 填写 'B',Date 填写 'TODAY',OPTION 填写 'PUT'.
我不确定如何开始所以任何帮助都会很好
在你的TYPE
输入中设置选项enable_events=True
,它会在元素内容改变时生成事件,然后在你的事件循环中处理它如果元素的内容等于'STOCK'
.
import datetime
from datetime import date
import pandas as pd
import PySimpleGUI as sg
def GUI():
columns = ["TYPE","DIRECTION","DATE","OPTION"]
param = (20,3) # size of the main window
sg.theme('Dark Brown 1')
sg.set_options(font=('Courier New', 12))
listing = [sg.Text(u, size = param) for u in columns]
core = [
sg.Input(size=param, enable_events=True, key='INPUT TYPE'),
sg.Input(size=param),
sg.Input(size=param),
sg.Input(size=param),
]
mesh = [[x,y] for (x,y) in list(zip(listing, core))]
layout = [[sg.Button("SEND")]] + mesh
window = sg.Window('Trade Entry System', layout, finalize=True)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
elif event == "INPUT TYPE" and values[event] == "STOCK":
for element, value in zip(core[1:], ['B', 'TODAY', 'PUT']):
element.update(value=value)
window.close()
GUI()
这是我的代码:
import PySimpleGUI as sg
import datetime
from datetime import date
import pandas as pd
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.Input(size = param),
sg.Input(size = param),
sg.Input(size = param),
sg.Input(size = param)]
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 == "SEND":
data = values
a = list(data.values())
df = pd.DataFrame(a, index = columns)
df = df.transpose()
print(df)
else:
print("OVER")
break
window.close()
GUI()
我想做的是,例如,如果字符串 'STOCK' 被输入到 TYPE 输入中,那么剩下的 3 个输入框应该填充预定义的值。例如,DIRECTION 填写 'B',Date 填写 'TODAY',OPTION 填写 'PUT'.
我不确定如何开始所以任何帮助都会很好
在你的TYPE
输入中设置选项enable_events=True
,它会在元素内容改变时生成事件,然后在你的事件循环中处理它如果元素的内容等于'STOCK'
.
import datetime
from datetime import date
import pandas as pd
import PySimpleGUI as sg
def GUI():
columns = ["TYPE","DIRECTION","DATE","OPTION"]
param = (20,3) # size of the main window
sg.theme('Dark Brown 1')
sg.set_options(font=('Courier New', 12))
listing = [sg.Text(u, size = param) for u in columns]
core = [
sg.Input(size=param, enable_events=True, key='INPUT TYPE'),
sg.Input(size=param),
sg.Input(size=param),
sg.Input(size=param),
]
mesh = [[x,y] for (x,y) in list(zip(listing, core))]
layout = [[sg.Button("SEND")]] + mesh
window = sg.Window('Trade Entry System', layout, finalize=True)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
elif event == "INPUT TYPE" and values[event] == "STOCK":
for element, value in zip(core[1:], ['B', 'TODAY', 'PUT']):
element.update(value=value)
window.close()
GUI()