Предполагается ли, что кнопка угадывания ничего не делает, даже если я ввожу числа?

#python #user-interface

#python #пользовательский интерфейс

Вопрос:

новичок в программировании исправил отступы в коде, но как только я запускаю код, он отображает игру в угадайку, но как только вы вводите число, программа ничего не делает

попытался добавить команду in, но как только я ввожу, кнопка исчезает

 import random

from breezypythongui import EasyFrame

class GuessingGame(EasyFrame):
    """playing a guessing game with a user."""

    def __init__(self):
        """setting up the window,widgets and data."""
        EasyFrame.__init__(self, title = "Guessing Game")
        # Initialize the instance variables for the data
        self.myNumber = random.randint(1,100)
        self.count = 0
        # Create and add widgets to the window
        greeting = "Guess a number between 1 and 100."
        self.hintLabel = self.addLabel(text = greeting,
                                       row = 0, column = 0,
                                       sticky = "NSEW",
                                       columnspan = 2)
        self.addLabel(text = "Your guess", row = 1, column = 0)
        self.guessField = self.addIntegerField(0, row = 1, column = 1)
        # Buttons have no command attributes yet
        self.nextButton = self.addButton(text = "Next", row = 2,column = 0)
        self.newButton = self.addButton(text = "New game", row = 2,column = 1)                                        

    def nextGuess():
        """Processes the user's next guess."""
        self.count  = 1
        guess = self.guessField.getNumber()
        if guess == self.myNumber:
            self.hintLabel["text"] = "You've guessed it in "   str(self.count)   "attempts!"
            self.nextButton["state"] = "disabled"
        elif guess < self.myNumber:
            self.hintLabel["text"] = "Sorry, too small!"
        else:
            self.hintLabel["text"] = "Sorry, too large!"

    def newGame():
        """Resets the data and GUI to their original states."""
        self.myNumber = random.randint(1, 100)
        self.count = 0
        greeting = "Guess a number between 1 and 100."
        self.hintLabel["text"] = "greeting"
        self.guessField.setNumber(0)
        self.nextButton["state"] = "normal"


def main():
    """Instantiate and pop up the window."""
    GuessingGame().mainloop()

if __name__== "__main__":
    main()
  

предположим, чтобы дать мне, если число, которое вводится в high или low

Ответ №1:

Насколько я могу судить, программа ничего не делает, потому что вы не назначили a command ни одному из своих виджетов. Глядя на пример здесь (на вкладке учебник), они ставят:

 self.addButton(text = "Compute", row = 3, column = 0, columnspan = 2, command = self.computeTax)
  

Где command бит указывает, какая функция должна запускаться при нажатии кнопки.