【问题标题】:If statement based on listbox with PySimpleGui使用 PySimpleGui 基于列表框的 if 语句
【发布时间】:2021-05-04 18:49:36
【问题描述】:

所以我在使用基于 PySimpleGui 列表框元素的 if 语句时遇到了一些问题。 我的代码是:

layout = [[sg.Listbox(values=['Listbox 1', 'Listbox 2', 'Listbox 3'], size=(30, 6))],
          [sg.Button('Next'), sg.Button('Quit')]]

window = sg.Window('PyK Mn', layout)

#############
# MAIN LOOP #
#############
while True:
    event, values = window.read()
    print(event)
    if event == sg.WIN_CLOSED or event == 'Quit':
        quit()
    elif event == 'Next':
        if values[0] == 'Listbox 3':
            print('3')

当我运行它时,它返回“Next”但没有“3”。我做错了什么?

【问题讨论】:

  • 打印values[0]会得到什么?
  • ['Listbox 3'] 但我已经在 if 语句中尝试了 ['Listbox 3'] 和 "['Listbox 3']"。

标签: python pysimplegui


【解决方案1】:

此处valuse[0] 仅用于选定列表,例如['Listbox 3'] 因为0 作为列表框的键。

要检查'Listbox 3'是否被选中,再添加一个列表索引,如值[0][0],

import PySimpleGUI as sg

layout = [[sg.Listbox(values=['Listbox 1', 'Listbox 2', 'Listbox 3'], size=(30, 6))],
          [sg.Button('Next'), sg.Button('Quit')]]

window = sg.Window('PyK Mn', layout)

#############
# MAIN LOOP #
#############
while True:
    event, values = window.read()
    print(event, values)
    if event == sg.WIN_CLOSED or event == 'Quit':
        window.close()
        break
    elif event == 'Next':
        if values[0][0] == 'Listbox 3':
            print('3')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    相关资源
    最近更新 更多