2016-04-23 3 views
-2

Имея некоторые проблемы с моим номером GUI Game: Я хочу, чтобы пользователь вводил положительное число (больше нуля Interger). Не поплавок. Никаких запятых, я не могу их удалить (хотя я не знаю, как это сделать). . Концепции If_Else и Exception Handling по-прежнему новы для меня.Python 3 - Всплывающие окна не отображаются по мере необходимости

Проблема: я сталкиваюсь: я хочу, чтобы всплывающие окна появлялись, когда была введена некорректная информация.

from tkinter import * 
from tkinter import ttk 

class App(Tk): 
    def __init__(self): 
     Tk.__init__(self) 

     self.Number() 
     self.Output() 

    def Number(self): 
     Label (self, text = "Enter a positive whole number!").grid(row=1, column = 0) 
     self.Number = Entry(self) 
     self.Number.grid(row = 1, column = 1) 

    def Output(self): 
     self.btn = Button(self, text = "Check the number") 
     self.btn.grid(row = 8, column = 1) 
     self.btn["command"] = self.calculate 

    def calculate(self): 
     #Type cast the tkinter Entry to be an int 
     self.Number = int(self.Number.get()) 
     #Print the class type of the variable self.Number: 
     print (type(self.Number)) 

     #If the interger is equal to zero, display a custom popup box 
     if self.Number == 0: 
      self.newWindow = Toplevel(self) 
      Label(self.newWindow, text = "Please enter a number greater than zero!").grid() 
      self.newWindow.grid() 
     #Else if the number is less than zero, display a custom pop up box 
     elif self.Number <= 0: 
      self.newWindow = Toplevel(self) 
      Label(self.newWindow, text="Plase enter a positive whole number!") 
      self.newWindow.grid() 
     #Check to see if anything has been input at all 
     #Else if the length of the user's input is 0/null, display a custom pop up 
     elif len(self.Number) == 0: 
      self.newWindow = Toplevel(self) 
      Label(self.newWindow, text = "Please enter a number greater than zero!").grid() 
      self.newWindow.grid() 
     #Else if the number is not equal to an int, display a custom pop up 
     elif self.Number != int: 
      self.newWindow = Toplevel(self) 
      Label(self.newWindow, text = "Please enter a number greater than zero!").grid() 
      self.newWindow.grid() 
+0

Что вы имеете в виду * "возникли некоторые проблемы" *? Дайте [mcve]. – jonrsharpe

+0

Независимо от того, что я делаю, всплывающие окна не отображаются, и я продолжаю получать ошибки в окне IDLE. – cparks10

+1

* Какие * ошибки ?! – jonrsharpe

ответ

-1

Обратите внимание, что вы можете использовать встроенный isdigit Питона()

test_strs=["12345", " 0123", "123.45", "-123", "123x5", "12*67", " 12 45", "0"] 
for eachstr in test_strs: 
    is_not=" IS NOT" 
    if eachstr.isdigit() : 
     is_not=" IS" 
    else: 
     ## display popup in a Toplevel 
    print "%7s %s a digit" % (eachstr, is_not) 
+0

Я отметил это как «не ответ», потому что вы даже не пытаетесь ответить на вопрос. –

Смежные вопросы