【问题标题】:I need help regarding grid placement on TKinter我需要关于 TKinter 上的网格放置的帮助
【发布时间】:2019-08-29 21:54:29
【问题描述】:

我正在尝试为某些代码创建 GUI,并注意到我无法在这些按钮、标签和输入窗口之间添加空格或填充。

如您所见,标签底部和输入窗口的结束位置与按钮的开始位置之间绝对没有空格。请注意,这是我正在尝试设置的准系统窗口。

我尝试增加 padx 和 pady,改变高度,以及改变它们所在的网格的确切部分。这些似乎都没有真正让我得到我正在寻找的东西。最接近实际实现我想要的东西是创建一个空白输入字段作为填充;但是,您可以看到为什么这不是一个好习惯。您可以清楚地看到输入字段并单击它(用于填充的那个)。

def createAccount():
    window = tk.Tk()
    window.geometry('320x109')
    window.title("Create an account")
    window.resizable(False, False)
    window.configure(bg='gray')
    #Buttons
    window.create_close_button = Button(window, text="Close", command=window.destroy, pady=10)
    window.create_account_button = Button(window, text="Create")
    #Labels
    window.create_username_label = Label(window, text="Username", bg='gray', fg='white')
    window.create_password_label = Label(window, text="Password", bg='gray', fg='white')
    window.create_confirm_password_label = Label(window, text="Confirm Password", bg='gray', fg='white')
    #Entries
    window.create_username_entry = Entry(window, bd=1, bg='gray', fg='white')
    window.create_password_entry = Entry(window, show="*", bd=1, bg='gray', fg='white')
    window.create_confirm_password_entry = Entry(window, show="*", bd=1, bg='gray', fg='white')

    window.create_username_label.grid(row=1, column=1)
    window.create_username_entry.grid(row=1, column=2)
    window.create_password_label.grid(row=2, column=1)
    window.create_password_entry.grid(row=2, column=2)
    window.create_confirm_password_label.grid(row=3, column=1)
    window.create_confirm_password_entry.grid(row=3, column=2)
    window.create_account_button.grid(row=4, column=1)
    window.create_close_button.grid(row=4, column=2)

【问题讨论】:

  • 当我在按钮上添加pady 时,正如我所期望的那样,它增加了一堆空间。请展示您在使用 pady 方面的尝试。
  • edit你的问题显示使用pady的代码。
  • 已编辑以反映水稻变化。
  • 我认为您将pady 添加到了错误的小部件中。如果您使用window.create_close_button.grid(row=4, column=2,pady=5),则条目和按钮之间有适当的空格。

标签: python tkinter


【解决方案1】:

在网格中添加间距的一种简单方法是简单地添加一个空白网格行/列标签并调整其大小。还要确保窗口足够大以支持任何填充尝试,这可能是 Tkinter 只是默默地不执行填充,因为没有空间可以执行,特别是在您禁用调整大小时。

【讨论】:

  • 我尝试过启用和不启用调整大小。那个标签的东西有效,但它似乎更像是一种 hacky 方式。有什么办法可以在不加空白标签的情况下加空格?
  • 它确实看起来有点 hacky,但如果你仔细想想,如果 Tkinter 允许你基本上将网格分成几块并通过在项目之间添加间距来扭曲它的一部分,那将没有多大意义.也没有,我不知道有任何其他方法。
猜你喜欢
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2014-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 2014-03-11
相关资源
最近更新 更多