18
Май
2020

Не срабатывает условие в tkinter при счетчике кликов

При запуске .bat файла следующего кода не заполняет текстовое окно, то есть метод reveal не срабатывает. Не могу понять почему. Никаких ошибок в консольное окно не выводит. При этом если убрать все элементы, связанные с self.bttn_clicks, то есть убрать подсчет количества кликов, то код работает как нужно. Помогите, пожалуйста, разобраться.

import random
from tkinter import *

class Application(Frame):

    N = random.randint(1,100)

    def __init__(self, master):
        super(Application, self).__init__(master)  
        self.grid()
        self.create_widgets()
        self.bttn_clicks = 0

    def create_widgets(self):
        self.inst_lbl = Label(self, text = "Guess the number PC made up")
        self.inst_lbl.grid(row = 0, column = 0, columnspan = 2, sticky = W)

        self.pw_lbl = Label(self, text = "Your try")
        self.pw_lbl.grid(row = 1, column = 0, sticky = W)

        self.pw_ent = Entry(self)
        self.pw_ent.grid(row = 1, column = 1, sticky = W)

        self.submit_bttn = Button(self, text = "Submit", command = self.reveal)
        self.submit_bttn.grid(row = 2, column = 0, sticky = W)
        self.submit_bttn["command"] = self.update_count

        self.secret_txt = Text(self, width = 35, height = 5, wrap = WORD)
        self.secret_txt.grid(row = 3, column = 0, columnspan = 2, sticky = W)

    def update_count(self):
        self.bttn_clicks += 1

    def reveal(self, low = 0, high = 100):
        response = int(self.pw_ent.get())
        number_of_clicks = self.bttn_clicks
        if response == Application.N:
            if number_of_clicks <= 10:
                message = "You are right!"
            elif number_of_clicks > 10:
                message = "You are right, but you lost :("
        else:
            if response < Application.N:
                message = "More..."
            elif response > Application.N:
                message = "Less..."
            else:
                message = "It's not even number!"
        self.secret_txt.delete(0.0, END)
        self.secret_txt.insert(0.0, message)

root = Tk()
root.title("Guess the number v4.0")
root.geometry("300x150")

app = Application(root)

root.mainloop()

Источник: https://ru.stackoverflow.com/questions/1127354/%D0%9D%D0%B5-%D1%81%D1%80%D0%B0%D0%B1%D0%B0%D1%82%D1%8B%D0%B2%D0%B0%D0%B5%D1%82-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B5-%D0%B2-tkinter-%D0%BF%D1%80%D0%B8-%D1%81%D1%87%D0%B5%D1%82%D1%87%D0%B8%D0%BA%D0%B5-%D0%BA%D0%BB%D0%B8%D0%BA%D0%BE%D0%B2

Тебе может это понравится...

Добавить комментарий