2016-07-04 18 views
-3

Mein Tkinter-Code zeigt keine Probleme, aber wenn ich es laufe, zeigt nichts. Was ist falsch?Python 2.7 Tkinter Code

Ich benutze Python 2.7. Es soll eine Pizzeria Spiel durch die Art und Weise

Hier ist mein Code sein:

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' ist kein Funktionsaufruf. Und Sie sollten den betreffenden Code hier einfügen. –

+0

'Window.mainloop' zeigt nirgendwo, weil es in Ihrer' Window' Klasse keine Funktion namens'Hauptschleife' gibt. Bitte lesen Sie [Wie Sie eine gute Frage stellen] (http://stackoverflow.com/help/how-to-ask) und bearbeiten Sie Ihren Beitrag. – Ian

+1

Fragen, die Debugging-Hilfe suchen (** "Warum funktioniert dieser Code nicht?" **) müssen das gewünschte Verhalten, * ein spezifisches Problem oder einen Fehler * und * den kürzesten erforderlichen Code * enthalten, um es ** in der Frage selbst zu reproduzieren **. Fragen ohne ** eine klare Problemstellung ** sind für andere Leser nicht nützlich. Siehe: [Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels] (http://stackoverflow.com/help/mcve). – MattDMo

Antwort

0

Das tut nichts, da es nur ein Verweis auf mainloop Methode der Window Klasse

Window.mainloop 

Sie benötigen Erstellen einer Instanz der Klasse Window bevor Sie anrufen mainloop

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

Danke, ich dachte, das war nicht nötig, es funktioniert jetzt. –