【发布时间】:2021-05-07 12:40:02
【问题描述】:
我正在尝试使用pysimplegui 处理用户输入。
如果用户在输入框中输入任何值,我需要确保它是整数类型。
如果成功,我需要将用户输入的值替换为默认值。
我尝试在 while 循环中使用 try except。我在这里担心的是,如果用户输入了一个字符串值,我需要提供一个重试选项。
但是,try 块下方的 if else 块正在执行。
如何确保为用户提供重试输入值的选项?
import PySimpleGUI as sg
sg.theme('SandyBeach')
layout = [
[sg.Text('Please enter your Phone')],
[sg.Text('Phone', size=(15, 1)), sg.InputText(key="lp1", do_not_clear=False)],
[sg.Button("e"), sg.Quit()]
]
window = sg.Window('Simple data entry window', layout)
while True:
event, values = window.read()
if event in (sg.WINDOW_CLOSED, "Quit"):
break
elif event == "e":
text = values['lp1']
log_timer = 1200
user_input = None
if text == '':
log_timer = 1200
else:
while True:
try:
user_input = int(text)
break
except ValueError:
sg.popup_error("Only Integer Allowed")
break
如果输入了字符串值,我需要停止下面的块。
if type(user_input) == int:
log_timer = user_input
print(log_timer)
elif log_timer == 1200:
print("no cha")
window.close()
【问题讨论】:
-
你的第二个
while True:没用。你break在这两种情况下都不行。 -
用于检查我是否添加了 coz,如果我删除了 try & keep on 的中断,除非 ui 卡在循环上,你可以建议修复它吗
标签: python python-3.x pysimplegui