【问题标题】:Fill in Input boxes based on input value in PysimpleGUI根据 PysimpleGUI 中的输入值填写输入框
【发布时间】:2021-07-05 01:04:53
【问题描述】:

这是我的代码:

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”填充。

我不确定如何开始,所以任何帮助都会很棒

【问题讨论】:

    标签: python pysimplegui


    【解决方案1】:

    在你的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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 2021-11-25
      • 2017-08-10
      • 2022-01-12
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多