如何解决根据另一个复选框的选定值更新复选框
我想在我的 PySimpleGUI 中有一个全选复选框。当全选复选框被选中时,所有其他复选框应变为 True,如果其他任何复选框未选中,则全选复选框应变为假状态?
我可以通过单击按钮来完成,但我找不到根据另一个复选框中选择的值更新复选框的方法?
import PySimpleGUI as sg
layout = [
[sg.CheckBox ('select all',key = 'checkBox')],[sg.CheckBox ('value 1',key='check_value1')],[sg.CheckBox ('value 2',key='check_value2')],[sg.Button ('ON',key = 'ON')],[sg.Button ('OFF',key = 'OFF')]
]
window = sg.Window ('Sample GUI',layout) .Finalize ()
while True: # Event Loop
event,values=window.read()
if event in (None,'Exit'):
break
elif event == 'ON':
window ['checkBox']. Update (value = True)
elif event == 'OFF':
window ['checkBox']. Update (value = False)
print(event,values)
window.close ()
有什么办法可以实现吗?
解决方法
选项 value
或方法 upgrade
中的第一个参数,如果 True 选中复选框,False 清除它,
演示代码,
import PySimpleGUI as sg
sg.theme('DarkBlue')
layout = [
[sg.Checkbox('All checked',enable_events=True,key='Check_All'),sg.Checkbox('All unchecked',key='Uncheck_All')],[sg.HorizontalSeparator()]] + [
[sg.Checkbox(f'check ({j},{i})',key=f'check{j}{i}')
for i in range(5)] for j in range(4)
]
window = sg.Window ('Sample GUI',layout,finalize=True)
while True: # Event Loop
event,values = window.read (timeout = 100)
if event == sg.WINDOW_CLOSED:
break
elif event == 'Check_All':
for j in range(4):
for i in range(5):
window[f'check{j}{i}'].update(True)
window['Uncheck_All'].update(False)
elif event == 'Uncheck_All':
for j in range(4):
for i in range(5):
window[f'check{j}{i}'].update(False)
window['Check_All'].update(False)
elif event.startswith('check'):
if not values[event]:
window['Check_All'].update(False)
else:
window['Uncheck_All'].update(False)
window.close ()
,
更新方法的值切换参数。 在下面的示例中,如果您按下 ON 按钮,则会输入一个对勾,如果您按下 OFF 按钮,则该对勾将被取消。
import PySimpleGUI as sg
from PySimpleGUI import Checkbox,Button
layout = [
[sg.Checkbox ('checkbox',key = 'checkbox')],[sg.Button ('ON',key = 'ON')],[sg.Button ('OFF',key = 'OFF')]
]
window = sg.Window ('Sample GUI',layout) .Finalize ()
while True: # Event Loop
event,values = window.read (timeout = 100)
if event in (None,'Exit'):
break
elif event == 'ON':
window ['checkbox']. Update (value = True)
elif event == 'OFF':
window ['checkbox']. Update (value = False)
window.close ()
有关更多信息,您也可以参阅此文档https://pysimplegui.readthedocs.io/en/latest/call%20reference/#checkbox-element
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。