2017-07-21 4 views
0

Ich bin neu zu tkinter und versuche, eine Listbox zu machen. Dies ist der Code, den ich verwende, bekomme ich immer den Fehler AttributeError: 'int' Objekt hat kein Attribut 'tk'. Was mache ich falsch?tkinter Listbox Fehler - AttributeError: 'int' Objekt hat kein Attribut 'tk'

from tkinter import * 

def ListWindow(): 
    Listwindow = Tk()   
    Listwindow.title("Welcome") 
    Listwindow.geometry("400x130") 

    lbl_welcome = Label(Listwindow,text="Welcome to A list box!") 
    lbl_welcome.grid(row=0,column=0,columnspan=10) 

    myList = Listbox(Listwindow) 
    myList.grid(row=1,column=0,columnspan=10) 

    WidgetNames = ['Button', 'Canvas'] 
    for widget in WidgetNames: 
     Listbox.insert(0, widget) 
    myList.grid(row=0,column=0,columnspan=10) 

def main(): 
    ListWindow() 

if __name__ == "__main__": 
    main() 
+1

U haben Fehler seine nicht Listbox.insert sollte es myList.insert ... und oben def main() setzen Linie Listwindow.mainloop() –

+0

natürlich werden - dumm von mir vielen Dank. –

Antwort

1

Sie müssen Methode von instance eines Widgets aufrufen. Im Moment versuchen Sie, Type als Instanz zu verwenden.

for widget in WidgetNames: 
    myList.insert(0, widget) 

Auch nicht sicher, die Sie IDE verwenden, aber auch wenn einige IDEs nennt mainloop implizit, wäre es besser, es explizit hinzufügen.

def ListWindow(): 
    Listwindow = Tk() 
    .... 
    .... 
    myList.grid(row=0,column=0,columnspan=10) 
    Listwindow.mainloop() 
Verwandte Themen