Python Tkinter 网格函数被忽略

我觉得我在这里错过了一些愚蠢而明显的东西 - 当然小部件应该沿着根窗口的顶部定位,但它们完全忽略了该.grid()功能。


当我打印时grid_size(),它返回了(0,0)。为什么?!


非常感谢任何帮助:)


title = tk.Label(root, text="Enter a city below")

title.grid(row=0, column=0)

title.pack()


e = tk.Entry(root)

e.grid(row = 0, column = 1)

e.pack()


current_clicker = ttk.Button(root, text = "Current forecast", command=current)

current_clicker.grid(row=0, column=2)

current_clicker.pack()


hourly_clicker = ttk.Button(root, text = "By hour", command=hourly)

hourly_clicker.grid(row=0, column=3)

hourly_clicker.pack()


minute_clicker = ttk.Button(root, text = "By minute", command=minute)

minute_clicker.grid(row=0, column=4)

minute_clicker.pack()


daily_clicker = ttk.Button(root, text = "Daily", command=daily)

daily_clicker.grid(row=0, column=5)

print(daily_clicker.grid_size())

daily_clicker.pack()


叮当猫咪
浏览 139回答 3
3回答

婷婷同学_

我相信您所要做的就是删除pack()orgrid(..)方法。不建议混合使用pack()和grid(),因为它可能会消除另一个的影响并导致此类错误。与pack(). grid(...)_ pack()_小例子:hourly_clicker = ttk.Button(root, text = "By hour", command=hourly)hourly_clicker.grid(row=0, column=3)minute_clicker = ttk.Button(root, text = "By minute", command=minute)minute_clicker.grid(row=0, column=4)希望它能解决您的疑问,如果还有错误,请告诉我

繁华开满天机

一次只有一个几何管理器可以管理一个小部件。正如问题标题所说,当您在.pack()调用后调用时.grid(...), 的效果grid(...)将被忽略。对于任何给定的小部件,您只能使用一个,并且需要与具有相同父级的所有小部件保持一致。

慕标5832272

pack、grid和place是可用于放置小部件的 3 种方法。tkinter将它们称为“几何管理器”。其中每一个都提供了一种独特的方式来定位和缩放小部件。pack将您的小部件停靠到定义的或可用的边缘grid行为就像一张桌子place允许您定义任意位置(和大小)单个小部件不能附加多个几何管理器,并且父部件不能包含在pack和之间交替的小部件grid。这意味着(例如),如果您有很多Frame使用 的小部件pack,则这些小部件都不能使用grid,反之亦然。place不受此限制,可以在任何地方使用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python