【问题标题】:Python - Tkinter how to add space between two ttk.Labelframe(s)Python - Tkinter 如何在两个 ttk.Labelframe(s) 之间添加空格
【发布时间】:2017-07-18 18:51:42
【问题描述】:

我确定我在这里遗漏了一些东西,但是当两个 ttk.Labelframe 对象使用 Grid() 几何管理器彼此相邻放置时,我无法在它们之间添加间隙或空间(参考下面的图片)。

我的代码结构的简单表示(伪)如下:

Root()
    mainframe = ttk.Frame()
         frame1 = ttk.Labelframe()
         frame1.Grid(row=0, column=0)
         frame2 = ttk.Labelframe()
         frame2.Grid(row=0, column=1)

我尝试了mainframe.rowconfigure(0,weight=1)mainframe.columnconfigure((0,1), weight=1) 无济于事(但这适用于这些框架内的其他小部件)。我还尝试在mainframe 中添加更多padding,但这只会在mainframe 内部添加填充。 frame1 和 frame2,而不是它们之间。

我可能错过了某个地方的关键字或属性,但我还没有找到它。请记住,我使用的是主题 tkinter 小部件 (ttk),因此并非所有关键字 tk 小部件都适用于 ttk 小部件。

提前谢谢大家,

【问题讨论】:

    标签: python-3.x tkinter


    【解决方案1】:

    只有在发布问题后才能找到所需的答案,这不是很典型吗? . .

    似乎我错过了mainframe.columnconfigure() 中的一个关键字。有趣的是,关键字是pad (-.-)。即:mainframe.columnconfigure((0,1), weight=1, pad=5) 会将 0 到 1 列配置为每个列的权重为 1(如果已拉伸)和 5 个像素的附加填充,这些填充将添加到 这些列中最大的单元格,从而导致框架之间的空间。

    编辑:另外,grid 命令本身也有一个 padx 和 pady 选项:the_label.grid(row=0, column=1, padx=10) - Bryan Oakley

    希望这对某人有所帮助。

    【讨论】:

    • grid 命令本身还有一个padxpady 选项:the_label.grid(row=0, column=1, padx=10)