我刚刚开始使用tkinter在python中制作GUI。我制作了一个可以生成随机密码的程序……它仍然缺少诸如保存密码和查看保存的密码之类的东西。因此,问题是我添加了一个错误处理,用户将提供密码的长度,以便我们只获取整数而不是字符串...弹出错误对话框后,除非我从pycharm终止,否则它将不会关闭。
def error(self):
self.messagebox.showerror("Oops!","Invalid input Integers only!")
l = int(len(entr1.get()))
while True:
try:
entr1.update()
lt = abs(int(entr1.get()))
break
except ValueError:
entr1.delete(0,l)
entr1.update()
self.error()
上面是我的错误处理例程,entr1是输入框,上面是将显示的错误消息框。 请告诉我我该如何解决...预先致谢!
答案 0 :(得分:0)
修复:使用if语句代替True循环。
def error(self):
self.messagebox.showerror("Oops!","Invalid input Integers only!")
def gen(self):
try:
entr1.update()
lt = abs(int(entr1.get()))
suc = 1
except:
entr1.delete(0, END)
entr1.update()
self.error()
suc = 0
if suc == 1:
tex1.delete('1.0', END)
tex1.update()
for x in range(21):
password = ""
for i in range(lt):
randa = self.random.choice(self.al)
randn = str(self.random.randint(0,9))
rand = [randa, randn]
password += self.random.choice(rand)
tex1.insert("1.0", "{}\n".format(password))
成功变量的suc表示错误处理,仅当suc = 1时执行程序,al是包含所有字母的列表,tex1是文本字段