首页 > 解决方案 > 如何使用网格将小部件设置在特定位置?

问题描述

如何设置容器框架有 12 列。那么,小部件按钮可以按列正确放置在特定列中吗?在这段代码中,我尝试将 clientFrame 设置为 12 列。然后,在第 3 列位置设置注册 btn,在第 5 列位置设置 loginBtn。

root = tkinter.Tk()
root.geometry("1280x720")
clientFrame = tkinter.Frame(root)

signupBtn = tkinter.Button(clientFrame, text= "Signup")
signupBtn.grid(column= 3, row= 0)

loginBtn = tkinter.Button(clientFrame, text= "Login")
loginBtn.grid(column= 5, row=0)

clientFrame.grid(columnspan= 12)
root.mainloop()

标签: pythontkinter

解决方案


您发布的代码实际上确实将按钮放在了请求的行和列中。但是,空行和空列的高度或宽度为零,因此您的按钮看起来与您预期的不同。

目前尚不清楚当您有空行和列时您期望发生什么。如果您想对每列强制执行最小大小,您可以使用grid_columnconfigure方法和minsize属性来执行此操作。或者,您希望所有列的大小相同,您可以将uniform所有列的属性设置为相同的值。

在以下示例中,列 0-11 都被限制为相同的宽度,因此它们将与任何列中最宽的项一样宽:

clientFrame.grid_columnconfigure(list(range(12)), uniform="equal")

相同大小列的屏幕截图

如果您想要最小列宽而不是相等的列,则将列的最小宽度设置为 100 像素:

clientFrame.grid_columnconfigure(list(range(12)), minsize=100)

具有最小宽度的列的屏幕截图


推荐阅读