gpt4 book ai didi

pysimplegui - 如何使用 PySimpleGui 从列表创建单选按钮?

转载 作者:行者123 更新时间:2023-12-03 01:25:47 25 4
gpt4 key购买 nike

我想使用 PySimpleGui 从列表动态创建单选按钮,但我在布局代码中插入循环的努力正在捕获语法错误。这可以通过 API 来完成还是需要使用 tkinter 来完成?我的列表是通过网络驱动器的目标文件搜索生成的。

我尝试连接“布局”,将单选按钮部分放入 for 循环中。还尝试在 [sg.Radio()] 声明本身中插入 for 循环。两者都不起作用。

import PySimpleGUI as sg

xList = ['a', 'b', ... 'zz']

layout = [[sg.Text('Select a thingy')],
[sg.Radio(<for thingy in xList: 'thingy', thingy>)],
#^^^^^^ for loop is psuedo code
[sg.OK(), sg.Cancel()]]

最佳答案

我想这就是您要找的东西?

import PySimpleGUI as sg

radio_choices = ['a', 'b', 'c']
layout = [
[sg.Text('My layout')],
[sg.Radio(text, 1) for text in radio_choices],
[sg.Button('Read')]
]

window = sg.Window('Radio Button Example', layout)

while True: # Event Loop
event, values = window.Read()
if event is None:
break
print(event, values)

它产生这个窗口:

enter image description here

“构建”布局变量的方法有很多种。以下是产生相同窗口的其他几种组合:

第一个每次构建一行,然后将它们添加到一起

# Build Layout
top_part = [[sg.Text('My layout')]]
radio_buttons = [[sg.Radio(x,1) for x in radio_choices]]
read = [[sg.Button('Read')]]
layout = top_part + radio_buttons + read

这个也一次构建一行,然后将它们加在一起,但它是在单个语句中完成的,而不是 4 个语句。

   # Build layout
layout = [[sg.Text('My layout')]] + \
[[sg.Radio(text, 1) for text in radio_choices]] + \
[[sg.Button('Read')]]
<小时/>

如果您想每行添加一个这些按钮,那么也有多种方法可以做到这一点。如果您使用的是 Python 3.6,那么这将起作用:

layout = [
[sg.Text('My layout')],
*[[sg.Radio(text, 1),] for text in radio_choices],
[sg.Button('Read')]
]

“构建布局”技术适用于上述 * 运算符无效的系统。

radio_choices = ['a', 'b', 'c']
radio = [[sg.Radio(text, 1),] for text in radio_choices]
layout = [[sg.Text('My layout')]] + radio + [[sg.OK()]]

这两种变体与窗口代码和事件循环结合使用时,将生成一个如下所示的窗口: enter image description here

关于pysimplegui - 如何使用 PySimpleGui 从列表创建单选按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56261629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com