Я пытаюсь сделать программу, которая будет всплывать в другое окно, если правильный пароль введен в течение 3 шагов. Когда неправильный пароль введен для третьей трети, он будет печатать «bye», но эта программа, кажется, печатает «bye» при первом вводе неправильного пароля.Loop не работает должным образом Python GUI
import Tkinter
def win1():
# this is the main/root window
root = Tkinter.Tk()
root.title("Stock Plus system")
root.geometry('400x150')
b2Var=Tkinter.StringVar()
s=0
def textboxvalue():
s=3
while (s==0):
global s
textvalue=b2Var.get()
if textvalue ==('stock123'):
label4=Tkinter.Label(root,text='Welcome to stock plus system, press login again to start using')
label4.grid(row=3,column=1)
Button_1 = Tkinter.Button(root, text="Login", command=win2)
Button_1.grid(row=2,column=1)
else:
s=s-1
label3=Tkinter.Label(root,text='Try again')
label3.grid(row=3,column=1)
else:
label5=Tkinter.Label(root,text='bitch')
label5.grid(row=4,column=1)
Button_1 = Tkinter.Button(root, text="Login", command=textboxvalue)
Button_1.grid(row=2, column=1)
b1Var = Tkinter.StringVar()
b2Var = Tkinter.StringVar()
box1Label = Tkinter.Label(root,text='Username:')
box1Label.grid(row=0)
box2Label = Tkinter.Label(root,text='Password:')
box2Label.grid(row=1)
box1Text = Tkinter.Entry(root,textvariable=b1Var,width=12)
box1Text.grid(row=0, column=1)
box2Text = Tkinter.Entry(root,textvariable=b2Var,width=12)
box2Text.grid(row=1, column=1)
root.mainloop()
def win2():
# this is the child window
board = Tkinter.Toplevel()
board.title("Window 2")
s1Var = Tkinter.StringVar()
s2Var = Tkinter.StringVar()
square1Label = Tkinter.Label(board,textvariable=s1Var)
square1Label.grid(row=0, column=7)
square2Label = Tkinter.Label(board,textvariable=s2Var)
square2Label.grid(row=0, column=6)
win1()
if (s==3):
label5=Tkinter.Label(root,text=' start using')
label5.grid(row=4,column=1)
Вам необходимо исправить отступы в коде. –
Какой ты на самом деле? – Teeban
Существует множество ошибок отступений, каждая функция не имеет отступов правильно. Иногда это происходит, когда вы вставляете его в текстовое поле. Можете ли вы запустить то, что у вас есть сейчас? Я вижу много проблем. –