ユーザーが正しいパスワードを入力するまで実行される関数をtkinterに書く必要があります。原理的には、同じでなければなりません:python - リターンプレスで続行する許可を与える
check = input('type ok')
while True:
if check == 'ok'
break
else:
check = input('type ok')
print('You made it!')
...しかし、いくつかのイライラの違いで:
1.私は、入力()関数を使用していないのではなく、Tkinterのテキストからテキストを取得しますウィジェット。
2.この検査方法は、単に一般的に物事が非常に不便になり、リターンキーを押し、にバインドされている
最高の私はこれまでのところ(擬似コードっぽいで)、持っている:
def authenticate():
root.bind('<Return>', check)
if auth == True:
return
else:
root.after(500, authenticate)
def check():
if pword == correct_pword:
auth = True
def signin():
auth = False
authenticate()
print('you're signed in!')
、authenticate
のみこの方法をユーザーがEnterキーを押してパスワードが正しいときに戻ります。私はそれがサインインのコードはその後だけ続くことを意味したと思ったが、これはどんな理由でもそうではないようだ。
これは正しいアプローチですか?関数が何かを返す前にコードがなぜ続くのかわかりません。
シーケンシャルコード、途中でユーザの相互作用は、一般に、GUIで実行可能なアプローチではありません。代わりに、処理されるイベントに関して考える必要があります。あなたのプログラムが最初にやることは、関数にはじめてを束縛することです。プロセスはその機能を継続し、パスワードが間違っている場合はエラーを表示し、そうでない場合はパスワードフィールドを隠すことから始まる認証されたものを実行します。 –
jasonharper