我正在尝试使用PySimpleGUI创建一个GUI,该GUI包含许多复选框,并带有向右滚动以允许我移动的复选框。我希望我的GUI通过具有多个复选框的方式来保持其大小。
这是我的代码:
form = sg.FlexForm("Dynamic Combo")
layout = [[sg.Text('<-- Enlazar Clientes con Páginas web -->')],
[sg.Text('Dominio: ')], [sg.InputText()],
[sg.Text('URL del Cliente: (con http:// o https://)')], [sg.InputText()],
[sg.Button("SELECCIONAR TODOS")],
[sg.Checkbox("something")], [sg.Checkbox("something")],
[sg.Checkbox("something")], [sg.Checkbox("something")],
[sg.Checkbox("something")], [sg.Checkbox("something")],
[sg.Checkbox("something")], [sg.Checkbox("something")],
[sg.Checkbox("something")], [sg.Checkbox("something")],
[sg.Checkbox("something")], [sg.Checkbox("something")],
[sg.Checkbox("something")], [sg.Checkbox("something")],
[sg.Checkbox("something")], [sg.Checkbox("something")],
[sg.Checkbox("something")], [sg.Checkbox("something")],
[sg.Checkbox("something")], [sg.Checkbox("something")],
[sg.Checkbox("something")], [sg.Checkbox("something")],
[sg.Checkbox("something")], [sg.Checkbox("something")],
[sg.Checkbox("something")], [sg.Checkbox("something")],
[sg.Text('')],
[sg.Submit('Ejecutar'), sg.Cancel('Salir')]
]
form = sg.Window('Enlazador de Páginas Web').Layout(layout)
我该怎么办?我听说sg.Column允许我做类似的事情,但是我尝试实现它,但是我什么都没做。
答案 0 :(得分:0)
您可以将布局放置在Column Element中以获取滚动条是正确的。
尝试将您的最后一行代码更改为此。它将使您的窗口变小并添加滚动条。阅读更多有关Column元素可用参数的信息。
form = sg.Window('Enlazador de Páginas Web').Layout([[sg.Column(layout, size=(300,300), scrollable=True)]])
form.Read()
答案 1 :(得分:0)
这是我的代码,现在我已经进行了更正和改进。我希望它能为您服务:
import PySimpleGUI as sg, sys
form = sg.FlexForm("Dynamic Combo")
col = [[sg.Checkbox("something1",key=1)], [sg.Checkbox("something2",key=2)],
[sg.Checkbox("something3",key=3)], [sg.Checkbox("something4",key=4)],
[sg.Checkbox("something5",key=5)], [sg.Checkbox("something6",key=6)],
[sg.Checkbox("something7",key=7)], [sg.Checkbox("something8",key=8)],
[sg.Checkbox("something9",key=9)], [sg.Checkbox("something10",key=10)],
[sg.Checkbox("something11",key=11)], [sg.Checkbox("something12",key=12)],
[sg.Checkbox("something13",key=13)], [sg.Checkbox("something14",key=14)],
[sg.Checkbox("something15",key=15)], [sg.Checkbox("something16",key=16)],
[sg.Checkbox("something17",key=17)], [sg.Checkbox("something18",key=18)]]
layout = [[sg.Text('<-- Scroll with Checkbox -->')],
[sg.Button("SELECT ALL")], [sg.Button("DESELECT ALL")],
[sg.Column(col, size=(300,300), scrollable=True)],
[sg.Cancel('Exit')]
]
form = sg.Window('Checkbox practice').Layout(layout)
while True:
event, values = form.Read()
if event == "SELECT ALL":
# IN THE RANGE ALWAYS PUT A NUMBER MORE TO GET THAT NUMBER
for x in range(1,19):
form.FindElement(x).Update(True)
if event == "DESELECT ALL":
# IN THE RANGE ALWAYS PUT A NUMBER MORE TO GET THAT NUMBER
for x in range(1,19):
form.FindElement(x).Update(False)
if event == "Exit":
sys.exit()
我认为,如果只有一个按钮可以选择和取消选择所有内容,那么根据我按的内容来更改其名称将是一个好主意。我正在研究它,尽管尚未找到它。如果有人知道您发表评论,请。如果我学会这样做,我将上传答案。谢谢