【问题标题】:tkinter listbox error - AttributeError: 'int' object has no attribute 'tk'tkinter 列表框错误 - AttributeError:“int”对象没有属性“tk”
【发布时间】:2017-07-21 18:09:36
【问题描述】:

我是 tkinter 的新手,正在尝试制作一个列表框。 这是我正在使用的代码,我不断收到错误 AttributeError: 'int' object has no attribute '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()

【问题讨论】:

  • 你有错别字它不是 Listbox.insert 它应该是 myList.insert... 和上面 def main() 放行 Listwindow.mainloop()
  • 当然 - 非常感谢。

标签: python-3.x tkinter listbox


【解决方案1】:

您需要从小部件的instance 调用方法。现在你正在尝试使用 Type 作为实例。

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

另外,不确定您使用的是哪个 IDE,但即使某些 IDE 隐式调用 mainloop,最好显式添加它。

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

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多