【问题标题】:How to position buttons in tkinter like in photo?如何像在照片中一样在 tkinter 中定位按钮?
【发布时间】:2020-07-19 17:19:36
【问题描述】:

我有一个 Python 项目,但我无法安排按钮。我怎样才能在照片中这样排列它们?

enter image description here

【问题讨论】:

  • 到目前为止你尝试过什么?有什么代码可以分享吗?

标签: python button tkinter grid


【解决方案1】:

您需要将问题分解为更小的部分。看着这张照片,我看到三个不同的区域:顶部有一个带有标题的蓝色条、一排标签、条目小部件和按钮,然后是一个按钮网格。因此,首先要学习如何将三个水平区域堆叠在一起。

接下来,您可以分别关注每个部分:

  • 对于顶部,了解如何使用单个蓝色标签填充该区域。
  • 对于按钮行,了解如何从左到右添加标签、条目小部件和按钮
  • 对于按钮网格,了解如何在网格中放置小部件。

您可以使用两个几何管理器来完成所有这些操作:grid 和 pack。 pack 最擅长边到边对齐(例如:从左到右,从上到下)。 grid 非常适合创建网格。它们都在互联网上的多个站点上得到了很好的记录。

如果我这样做,我会使用pack 从上到下堆叠三个框架,底部框架配置为填充所有剩余空间。我还将使用pack 来布置第二部分中的标签、条目小部件和按钮。我会使用网格来布置第三部分中的按钮。这不是唯一的方法,但我认为这是需要最少代码量的方法。

例如,第一步是创建三个框架并布置它们。它可能看起来像这样:

import tkinter as tk
root = tk.Tk()

title_frame = tk.Frame(root)
tool_frame = tk.Frame(root)
button_frame = tk.Frame(root)

title_frame.pack(side="top", fill=x", expand=False)
tool_frame.pack(side="top", fill="x", expand=False)
button_frame.pack(side="top", fill="both", expand=True)

之后,只需对每个部分执行相同的流程即可。

提示:在最初的开发过程中,为每个帧临时赋予不同的颜色、粗边框和/或估计的宽度和高度是有帮助的,这样您就可以将它们可视化。一切正常后,您可以返回并调整颜色和边框,并且在您开始添加其他小部件后,小部件的宽度和高度应该会自动调整。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    相关资源
    最近更新 更多