2016-07-27 4 views
0

Für meine Hausaufgaben muss ich ein Widget erstellen. Ich bin sehr neu dazu. Ich versuche, meine Tasten zu zeigen. Ich habe versucht, sie zu packen, aber ich weiß nicht, was ich falsch mache. Hier ist was ich habe.GUI, Schaltflächen werden nicht im Fenster angezeigt

from tkinter import * 
import turtle 
main = Tk() 
main.title("TurtleApp") 

class turtleApp: 

    def __init_(self): 
    self.main = main 
    self.step = 10 
    self.turtle = turtle.Turtle() 
    self.window = turtle.Screen() 
    self.createDirectionPad 

    def createDirectionPad(self): 
    mainFrame = Frame(main) 
    mainFrame.pack() 
    button1 = Button(mainFrame,text = "left", fg="red") 
    button2 = Button(mainFrame,text = "right", fg="red") 
    button3 = Button(mainFrame,text = "up", fg="red") 
    button4= Button(mainFrame,text = "down", fg="red") 
    button1.pack() 
    button2.pack() 
    button3.pack() 
    button4.pack() 

main.mainloop() 

Antwort

2

Zu allererst Ihre Einbuchtung ausgeschaltet ist, aber wenn man beheben, dass man eigentlich nie eine Instanz Ihrer turtleApp Klasse erstellen, so dass keiner der Code immer ausgeführt wird Sie mit einem leeren GUI zu verlassen.

# Actually create a turtleApp instance which adds the buttons 
app = turtleApp() 

# Enter your main event loop 
main.mainloop() 

Sie müssen auch tatsächlich AnrufcreateDirectionPad innerhalb __init__ mit expliziten () zu. Wie es ist, erstellt self.createDirectionPad (ohne die ()) nur einen Verweis auf die Methode und ruft es nicht tatsächlich auf.

def __init__(self): 
    # other stuff 
    self.createDirectionPad() 

aktualisieren

Sie haben auch einen Tippfehler in Ihrer __init__ Funktionsdeklaration. Sie vermissen die endgültige _ in __init__

+0

es läuft immer noch nicht, nachdem ich die Instanz erstellen – Mia

+0

@Mia Aktualisiert über – Suever

+0

Ich sah und behoben, dass, nachdem ich den Code veröffentlicht. Anscheinend gibt es ein anderes Problem in meinem Code, das ich nicht sehe. – Mia