2016-07-04 12 views
-3

В моем коде Tkinter нет проблем, но когда я запускаю его, ничего не отображается. Что не так?Python 2.7 Код Tkinter

Я использую Python 2.7. Это должно быть пиццерия игры, кстати

Вот мой код:

import Tkinter as tk 
from Tkinter import StringVar 
import ttk 
from random import randint , choice ,uniform 

class Window(tk.Tk): 
    def __init__(self, *args, **kwargs): 
     tk.Tk.__init__(self, *args, **kwargs) 
     container = tk.Frame(self) 
     container.pack(side="top", fill="both", expand = True) 
     container.grid_rowconfigure(0, weight=1) 
     container.grid_columnconfigure(0, weight=1) 
     self.frames = {} 
     for F in (StartPage, Easy, Hard): 
      frame = F(container, self) 
      self.frames[F] = frame 
      frame.grid(row=0, column=0, sticky="nsew") 
     self.show_frame(StartPage) 

    def show_frame(self, cont): 
     frame = self.frames[cont] 
     frame.tkraise() 


class StartPage(): 
    tk.Label(text = "Welcome!" , font = ("Verdana", 12)).pack() 
    ttk.Button(text = "Play" , command = lambda: Window().show_frame(Play())) 

class Play(): 
    def loop(): 
     q = randint(0, 10) 
     p = uniform(1.50 , 10.50) 
     t = uniform(.1, .9) 
     p2 = p*q 
     p3 = p2*t 
     g = StringVar() 
     ttk.Entry(textvariable=g).pack() 
     ttk.Label(text = "Price Per Pizza: " + str(p) + " Amount: " + str(q) + " Tax: " + str(t)) 
     if g == p3 : ttk.Label(text = "Correct!") 
     elif g != p3: ttk.Label(text = "Try Again.") 
    loop() 
    ttk.Button(text = "Play" , command = lambda: loop()) 

Window.mainloop 
+0

'Window.mainloop' не является вызовом функции. И здесь вы должны включить этот код. –

+0

'Window.mainloop' указывает на то, что в классе' Window' нет функции 'mainloop'. Пожалуйста, прочитайте [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) и отредактируйте сообщение. – Ian

+1

Вопросы поиска справки по отладке (** «почему этот код не работает?» **) должен включать желаемое поведение, * конкретную проблему или ошибку * и * самый короткий код, необходимый для воспроизведения ** в самом вопросе **. Вопросы без ** ясного заявления о проблеме ** не полезны для других читателей. См. [Как создать минимальный, завершенный и проверяемый пример] (http://stackoverflow.com/help/mcve). – MattDMo

ответ

0

Это ничего не делает, так как это просто ссылка на mainloop метод Window класса

Window.mainloop 

Вам нужно для создания экземпляра Window класса, прежде чем вы позвоните mainloop

w = Window() 
w.mainloop() 
+0

Спасибо, я думал, что он не нужен, он работает сейчас. –

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