MessageBox не исчезает после нажатия кнопки ОК - PullRequest
0 голосов
/ 29 апреля 2018

Я пытаюсь угадать число в Python 2.7 с помощью Tkinter. У меня возникают проблемы с исчезновением MessageBox после того, как я нажму "ОК".

import random
import Tkinter 
import tkMessageBox
import tkSimpleDialog


root = Tkinter.Tk() 

Random_Pick = random.randint(1,10)
No_Tries = 0
G = True
while G == True: 
    print  ('Guess A Number!')
    Guess = tkSimpleDialog.askinteger('Game', 'Pick A Number Between 1 And 10:')
    print Guess
    if Guess is not None:
        Guess = int(Guess)
        Q = True
    if Guess is None:
        pass
    while Q == True:
        if Guess != Random_Pick:
            Sorry = tkMessageBox.showinfo ('Sorry', 'You Got It Wrong.')
            No_Tries = No_Tries + 1

        if Guess == Random_Pick:
            No_Tries = str(No_Tries)
            if No_Tries == str(1):
                OneTry = tkMessageBox.showinfo ('Congratulations!', 'You Got It Right! It took ' + No_Tries + ' Try!' )
                print OneTry
            else: Tries= tkMessageBox.showinfo ('Congratulations!', 'You Got It Right! It took ' + No_Tries + ' Tries!')
            print Tries
            G = False
        while No_Tries == 3:
            Random_Pick = str(Random_Pick)
            tkMessageBox.showinfo ('Sorry', 'You Lose. The Number was ' + Random_Pick)
            No_Tries = 0
            G = False                      

if AttributeError:
    pass

root.mainloop()

Я не уверен, почему MessageBox не исчезает после нажатия кнопки ОК. Есть ли способ сделать это с Tkinter?

1 Ответ

0 голосов
/ 30 апреля 2018

Внутренний цикл while не имеет выхода. Он зацикливается на условии Q == True, но ничего внутри цикла не изменяет Q.

...