Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tkinter 在PySimpleGUI中:如何基于用户设置Drop对象的值';是否在另一个放置对象中选择?_Tkinter_Pysimplegui - Fatal编程技术网

Tkinter 在PySimpleGUI中:如何基于用户设置Drop对象的值';是否在另一个放置对象中选择?

Tkinter 在PySimpleGUI中:如何基于用户设置Drop对象的值';是否在另一个放置对象中选择?,tkinter,pysimplegui,Tkinter,Pysimplegui,例如,我有两个Drop object水滴列表。第一种是用户可以从选项中选择,第二种是基于用户在选项中的选择。即,如果用户在第一个滴状列表中选择“Geometric Asian”,则只有[“Closed Form”,“Monte Carlo]”可用作选项 import sys import PySimpleGUI as sg OPTIONS_CHOICE = ['European', 'American', 'Geometric Asian', 'Arithmetic Asian', 'Geom

例如,我有两个Drop object水滴列表。第一种是用户可以从选项中选择,第二种是基于用户在选项中的选择。即,如果用户在第一个滴状列表中选择“Geometric Asian”,则只有[“Closed Form”,“Monte Carlo]”可用作选项

import sys
import PySimpleGUI as sg

OPTIONS_CHOICE = ['European', 'American', 'Geometric Asian', 'Arithmetic Asian', 'Geometric Basket', 'Arithmetic Basket']

methodology = {
    'European' : ['Black Scholes', 'Binominal Tree'],
    'American' : ['Binominal Tree'],
    'Geometric Asian' : ['Closed Form', 'Monte Carlo'],
    'Arithmetic Asian' : ['Monte Carlo', 'Monte Carlo with Control Variate'],
    'Geometric Basket' : ['Closed Form', 'Monte Carlo'],
    'Arithmetic Basket' : ['Monte Carlo', 'Monte Carlo with Control Variate'],
}

option_layout = [
    [sg.Text('Step 1: Select an Option Type', background_color='darkseagreen')],
    [sg.Text('Option Type:', background_color='darkseagreen'), sg.Drop(values=OPTIONS_CHOICE, default_value = 'European', auto_size_text=True, enable_events=True, key='option_type')],
    [sg.Text('Step 2: Select a Methodology', background_color='darkseagreen')],
    [sg.Text('Methodology:', background_color='darkseagreen'), sg.Drop(values=option_choice, auto_size_text=True)]
    ]

iv_layout = [[sg.Text('This is inside tab 5')],
            [sg.Input(key='-in4-')]]


layout = [[sg.TabGroup([[sg.Tab('Option Value', option_layout, background_color='darkseagreen', key='-mykey-'),
                        sg.Tab('Implied Volatility', iv_layout)]], key='-group1-', tab_location='top', selected_title_color='purple')],
        [sg.Button('Compute')]]

window = sg.Window('Option Calculator', layout,
                default_element_size=(12, 1))

while True:
    event, values = window.read()
    sg.popup_non_blocking(event, values)
    print(event, values)
    if event == sg.WIN_CLOSED:           # always,  always give a way out!
        break

    print(event, values)


window.close()

在事件循环中第一次放置事件时更新第二次放置元素

导入系统 将PySimpleGUI导入为sg 选项_CHOICE=[‘欧洲’、‘美国’、‘几何亚洲’、‘算术亚洲’、‘几何篮子’、‘算术篮子’] 方法学={ “欧洲”:[“布莱克·斯科尔斯”,“二叉树”], “美国人”:[“二叉树”], ‘几何亚洲’:[‘封闭形式’、‘蒙特卡罗’], ‘算术亚洲’:[‘蒙特卡罗’、‘带控制变量的蒙特卡罗’], “几何篮子”:[“封闭形式”,“蒙特卡罗”], “算术篮”:[“蒙特卡罗”,“带控制变量的蒙特卡罗”], } default1=选项\u选项[0] 选项\u选项=方法[default1] default2=选项_选项[0] 选项_布局=[ [sg.Text('步骤1:选择选项类型',background_color='darkseagreen'), [sg.Text('Option Type:',background_color='darkseagreen'), Drop(value=OPTIONS\u CHOICE,default\u value=default1,auto\u size\u text=True,enable\u events=True,key='option\u type'), [sg.Text('步骤2:选择一种方法',背景颜色='darkseagreen'), [sg.Text('方法:',背景颜色='暗绿色'), Drop(value=option\u choice,default\u value=default2,auto\u size\u text=True,key='option\u value')] ] iv_布局=[[sg.Text('这在表5中')], [sg.Input(key='-in4-')]] 布局=[[sg.TabGroup([[sg.Tab('Option Value',Option_布局,background_color='darkseagreen',key='-mykey-')), sg.选项卡(“隐含波动率”,iv_布局)],键='-group1-',选项卡位置='top',所选标题颜色='purple')], [sg.按钮('Compute')]] 窗口=sg.窗口('选项计算器',布局, 默认元素大小=(12,1)) 尽管如此: 事件,值=window.read() 打印(事件、值) 如果event==sg.WIN_关闭:#总是,总是给一条出路! 打破 elif事件==“选项类型”: 选择=值[事件] 选项\选择=方法学[选择] 窗口['option\u value']。更新(值=option\u选项[0],值=option\u选项) sg.弹出非阻塞(事件、值) window.close()