2016-06-07 2 views
-1

ich den folgenden CodeIch kann nicht bekommen tkMessageBox.askokcancel in Python 2.7 zu bekommen scheinen zu funktionieren

closeButton = Button(self, text="Close",command=self.askyesno) 
    closeButton.pack(side=RIGHT, padx=5, pady=5) 
    okButton = Button(self, text="OK") 
    okButton.pack(side=RIGHT) 

def askyesno(): 
    res = tkMessageBox.askokcancel(title="Quit", message="Do you want to quit?") 
    if res == "yes": 
    self.quit() 

Jedes Mal, wenn ich den Schließen-Button drücken geschrieben haben, Python Abstürze mit der Meldung Typ Fehler: askyesno() nimmt keine Argumente, 1 gegeben. Es gibt viele Beispiele im Internet wie meine. Ich bin sicher, dass sie arbeiten. Was mache ich falsch. Alle Beispiele, die ich gefunden habe, haben dieses Problem und die Dokumentation für tkMessageBox liefert keine Beispiele.

Antwort

1

Es ist nicht die tkMessageBox, es ist Ihre Funktion. Sie sollten es so definieren:

#def askyesno(): # Not like this 
def askyesno(self): 

Angenommen, es ist ein Mitglied einer Klasse.

+0

Vielen Dank, Sie haben Recht. Mir ist auch aufgefallen, dass ich tkMessageBox nicht benutzen sollte. wie ich von tkMessageBox import * lief –