Tkinter で、ボタンのコールバックに分割することは可能ですか。ユーザーが間違いを犯した場合、特定の部分でエラーが発生するコードのセグメントがありますが、それは別の for ループと while ループにネストされた for ループ内にあり、2 つまたは 3 つの関数のいずれかになります。深い(これらの関数の戻り値が操作されている)。
私がやりたいことは、このエラーが見つかったときに mainloop() に戻ることです。
したがって、コードは次のようになります。
from Tkinter import *
def func_call(val_list):
y = []
for nn in range(len(val_list)):
if val_list[nn] < 0:
print('You entered a value that was too low.')
break
else:
y.append(val_list[nn]+5)
return(y)
def Button_callback(value):
val_list = [value,value-1,value-2,value-3]
y = func_call(val_list)
for nn in range(len(val_list)):
print(y[nn])
root = Tk()
Button(root,text='Press me',command=lambda: Button_callback(1)).grid(row=0,column=0)
root.mainloop()
これが行うことは、値が小さすぎることを識別し、for ループを中断して、変数 "y" を前の関数に返すことです。この関数は、"y" が同じ長さであると想定しているため、すぐにエラーを出します。 「val_list」として。
私がやりたいのは、効果的にボタンを押した状態に戻ることです。そのため、「func_call」と「Button_callback」の両方を「入力した値が低すぎます」だけで中断します。エラーメッセージとして。
助言がありますか?