如何在 pysimplegui 中单击一次后禁用按钮?
how to disable a button after being clicked once in pysimplegui?
我想在我的代码中禁用开始更新按钮
代码:
import PySimpleGUI as sg
import time
mylist = ["Reading files from the internet","downloading new version","writing intents","Training Assistant","Waiting for tensorflow backend","Successfully trained","Completing update","Update successful"]
progressbar = [
[sg.ProgressBar(len(mylist), orientation='h', size=(51, 10), key='progressbar')]
]
outputwin = [
[sg.Output(size=(78,20))]
]
layout = [
[sg.Frame('Progress',layout= progressbar)],
[sg.Frame('Output', layout = outputwin)],
[sg.Submit('Start update'),sg.Cancel()]
]
window = sg.Window('Assistant updater', layout)
progress_bar = window['progressbar']
while True:
event, values = window.read(timeout=10)
if event == 'Cancel' or event is None:
break
elif event == 'Start update':
for i,item in enumerate(mylist):
print(item)
if item=="Reading files from the internet":
print('New line started')
time.sleep(1)
progress_bar.UpdateBar(i + 1)
任何人都可以帮助我,以便我可以在“开始更新”按钮之后禁用该按钮,这样它就不会被点击两次
您必须在单击后禁用按钮,直到过程完成。
你可以试试这个:
window['Start update'].update(disabled=True)
过程完成后,您可以启用按钮:
window['Start update'].update(disabled=False)
试试这个:
while True:
event, values = window.read(timeout=10)
if event == 'Cancel' or event is None:
break
elif event == 'Start update':
window['Start update'].update(disabled=True)
for i,item in enumerate(mylist):
print(item)
if item=="Reading files from the internet":
print('New line started')
time.sleep(1)
progress_bar.UpdateBar(i + 1)
window['Start update'].update(disabled=False)
我想在我的代码中禁用开始更新按钮
代码:
import PySimpleGUI as sg
import time
mylist = ["Reading files from the internet","downloading new version","writing intents","Training Assistant","Waiting for tensorflow backend","Successfully trained","Completing update","Update successful"]
progressbar = [
[sg.ProgressBar(len(mylist), orientation='h', size=(51, 10), key='progressbar')]
]
outputwin = [
[sg.Output(size=(78,20))]
]
layout = [
[sg.Frame('Progress',layout= progressbar)],
[sg.Frame('Output', layout = outputwin)],
[sg.Submit('Start update'),sg.Cancel()]
]
window = sg.Window('Assistant updater', layout)
progress_bar = window['progressbar']
while True:
event, values = window.read(timeout=10)
if event == 'Cancel' or event is None:
break
elif event == 'Start update':
for i,item in enumerate(mylist):
print(item)
if item=="Reading files from the internet":
print('New line started')
time.sleep(1)
progress_bar.UpdateBar(i + 1)
任何人都可以帮助我,以便我可以在“开始更新”按钮之后禁用该按钮,这样它就不会被点击两次
您必须在单击后禁用按钮,直到过程完成。
你可以试试这个:
window['Start update'].update(disabled=True)
过程完成后,您可以启用按钮:
window['Start update'].update(disabled=False)
试试这个:
while True:
event, values = window.read(timeout=10)
if event == 'Cancel' or event is None:
break
elif event == 'Start update':
window['Start update'].update(disabled=True)
for i,item in enumerate(mylist):
print(item)
if item=="Reading files from the internet":
print('New line started')
time.sleep(1)
progress_bar.UpdateBar(i + 1)
window['Start update'].update(disabled=False)