无法调用Python tkinter标签

时间:2012-05-28 21:15:38

标签: python grid tkinter label tk

我正在使用Python创建一个简单的tkinter GUI,我需要放置大约10个或更多标签。我使用网格方法放置标签但是在一定量之后它出现了一个错误,说“TypeError:Label对象不可调用”。以下是标签和网格放置的代码:

UnitPointLabel = ttk.Label(root, text = unit_points)
UnitLabel = ttk.Label(root, text = unit)
HQ1 = ttk.Label(root, text = "HQ:")
HQ2 = ttk.Label(root, text = "HQ:")
Elite1 = ttk.Label(root, text = "Elite:")
Elite2 = ttk.Label(root, text = "Elite:")
Elite3 = ttk.Label(root, text = "Elite:")
Troop1 = ttk.Label(root, text = "Troop:")
Troop2 = ttk.Label(root, text = "Troop:")
Troop3 = ttk.Label(root, text = "Troop:")
Troop4 = ttk.Label(root, text = "Troop:")
Troop5 = ttk.Label(root, text = "Troop:")
Troop6 = ttk.Label(root, text = "Troop:")
Fast_Attack1 = ttk.Label(root, text = "Fast Attack:")
Fast_Attack2 = ttk.Label(root, text = "Fast Attack:")
Heavy_Support1 = ttk.Label(root, text = "Heavy Support:")
Heavy_Support2 = ttk.Label(root, text = "Heavy Support:")
Heavy_Support3 = ttk.Label(root, text = "Heavy Support:")



UnitPointLabel.grid(row = 3, column = 7)
HQ1.grid(row = 3, column = 5)
HQ2.grid(row = 4, column = 5)
Troop1.grid(row = 5, column = 5)
Troop2.grid(row = 6, column = 5)
Troop3.grid(row = 7, column = 5)
Troop4.grid(row = 8, column = 5)
Troop5.grid(row = 9, column = 5)
Troop6.grid(row = 10, column = 5)
Fast_Attack1.grid(row = 11, column = 5)
Fast_Attack2.grid(row = 12, column = 5)

Stops working here: Heavy_Support1(row = 3, column = 6)
Heavy_Support2(row = 2, column = 6)
Heavy_Support3(row = 3, column = 6)

正如您所看到的,我尝试移动行和列,但它仍然无法正常工作。任何人都知道为什么会这样吗?

1 个答案:

答案 0 :(得分:4)

调试的第一条规则:假设错误信息说实话。它说什么?它说“标签对象不可调用”。这意味着您有一些对象是Label对象的实例,并且您正在尝试调用它。例如,“foo = Label(...); ...; foo()”。

那么,查看您的代码,您要调用哪些标签对象?看看这三行:

Heavy_Support1(row = 3, column = 6)
Heavy_Support2(row = 2, column = 6)
Heavy_Support3(row = 3, column = 6)

回顾一下代码,我看到Heavy_Support1(等)都是Label的实例,你确实试图调用它。

简而言之,您似乎忘了在这些行上添加.grid。他们应该是:

Heavy_Support1.grid(row = 3, column = 6)
Heavy_Support2.grid(row = 2, column = 6)
Heavy_Support3.grid(row = 3, column = 6)
相关问题