当在 Windows 上按 X 时,PySimpleGUI one_line_progress_meter 不会 return False
PySimpleGUI one_line_progress_meter does not return False when pressing X on Windows
在 PySimpleGUI 的 docs 中声明函数 returns 如果按下取消按钮或 windows 标题栏中的 X 按钮则为真。但是,它仅适用于版本 4.55.1 中的取消按钮。
MWE:
import time
import PySimpleGUI as sg
for i in range(1, 200):
time.sleep(0.1)
if not sg.one_line_progress_meter(title="test", current_value=i, max_value=200,
no_button=False):
print('returned false')
break
我是不是漏掉了什么?
对于sg.one_line_progress_meter
的window,定义为disable_close=True
,所以这个window不能通过点击Close
按钮关闭28=],只有 Cancel
按钮适用。
好的,下面的代码展示了破解方法
- 找到 window
one_line_progress_meter
- 将 quick-meter window 的属性
DisableClose
设置为 False
import time
import PySimpleGUI as sg
sg.one_line_progress_meter(title="test", current_value=0, max_value=200, no_button=False)
key='OK for 1 meter'
meter = sg.QuickMeter.active_meters[key]
meter.window.DisableClose = False
for i in range(1, 200):
time.sleep(0.1)
if not sg.one_line_progress_meter(title="test", current_value=i, max_value=200, no_button=False):
print('returned false')
break
sg.one_line_progress_meter_cancel()
在 PySimpleGUI 的 docs 中声明函数 returns 如果按下取消按钮或 windows 标题栏中的 X 按钮则为真。但是,它仅适用于版本 4.55.1 中的取消按钮。
MWE:
import time
import PySimpleGUI as sg
for i in range(1, 200):
time.sleep(0.1)
if not sg.one_line_progress_meter(title="test", current_value=i, max_value=200,
no_button=False):
print('returned false')
break
我是不是漏掉了什么?
对于sg.one_line_progress_meter
的window,定义为disable_close=True
,所以这个window不能通过点击Close
按钮关闭28=],只有 Cancel
按钮适用。
好的,下面的代码展示了破解方法
- 找到 window
one_line_progress_meter
- 将 quick-meter window 的属性
DisableClose
设置为False
import time
import PySimpleGUI as sg
sg.one_line_progress_meter(title="test", current_value=0, max_value=200, no_button=False)
key='OK for 1 meter'
meter = sg.QuickMeter.active_meters[key]
meter.window.DisableClose = False
for i in range(1, 200):
time.sleep(0.1)
if not sg.one_line_progress_meter(title="test", current_value=i, max_value=200, no_button=False):
print('returned false')
break
sg.one_line_progress_meter_cancel()