【问题标题】:Python Tkinter grid functions ignoredPython Tkinter 网格函数被忽略
【发布时间】:2020-12-22 03:36:14
【问题描述】:

我觉得我在这里遗漏了一些非常明显的东西 - 小部件当然应该放在根窗口的顶部,但它们完全忽略了 .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()

【问题讨论】:

  • 尝试删除.pack()。说.grid(),这是我在这里看到的唯一奇怪的东西,没必要这么说
  • 永远不要在同一个框架中混合网格和打包。

标签: python tkinter grid widget tk


【解决方案1】:

我相信您所要做的就是删除 pack()grid(..) 方法。不建议将pack()grid()混用,因为这样可能会消除另一个的影响,导致这样的错误。

我建议删除 pack(),因为与 pack() 相比,grid(...) 是一种更有序的小部件管理方式。

小例子:

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)

希望它能解决你的疑惑,如果还有错误,请告诉我

干杯

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      packgridplace 是可用于放置小部件的 3 种方法。 tkinter 将这些称为“几何管理器”。每一个都提供了一种独特的方式来定位和缩放小部件。

      • pack 会将您的小部件停靠到已定义或可用的边缘
      • grid 的行为就像一张桌子
      • place 允许您定义任意位置(和大小)

      单个小部件不能附加多个几何管理器,并且父小部件不能包含在 packgrid 之间交替的小部件。这意味着(例如),如果您有一个充满使用pack 的小部件的Frame,则这些小部件都不能使用grid,反之亦然。 place 不受此限制,可以在任何地方使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-04
        相关资源
        最近更新 更多