我想使用 for loop 和 PySimpleGUI 显示一些文本。 我有一个代码...
import PySimpleGUI as sg
teams = ["a","b","c","d"]
layout = [
[sg.Text(teams[i]), sg.Radio('Pot A', "RADIO1", default=True),
sg.Radio('Pot B', "RADIO1")],
]
window = sg.Window('hey').Layout(layout)
button, values = window.Read()
而且因为我想避免硬编码,所以我想使用 for loop 为我创建更多的文本。 循环示例...
for i in range(len(teams)):
#create some text
我不知道在哪里插入我的循环以使其工作,或者是否有可能。
提前感谢!
不确定您希望如何显示团队列表。
无论如何,您都有很多选择来做到这一点。 最简单的一种是列表推导。
import PySimpleGUI as sg
teams = ["a","b","c","d"]
layout = [[sg.Text(team) , sg.Radio('Pot A', "RADIO1"+team, default=True),
sg.Radio('Pot B', "RADIO1"+team)] for team in teams]
window = sg.Window('hey', layout)
button, values = window.read()
使用循环创建布局在 PySimpleGUI 文档中进行了描述: https://pysimplegui.readthedocs.io/en/latest/#generated-layouts-for-sure-want-to-read-if-you-have-5-repeating-elementsrows
对于新闻记者,您还可以在以下方向上创建一个循环:
fire = ['F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'F10']
col = [[sg.Text('Fire', background_color='red', size=sz)]]
# Create several similar fire buttons in the vertical column
for card in fire:
col += [
[sg.Button(card, key=card)]
]