我的按钮上的column
值设置为500,但该按钮似乎并没有向右移动那么远。
这是我的代码:
from tkinter import *
root = Tk()
root.geometry("500x500")
logo = Label(root,text = "New File Finder")
new_folder = Button(text = "browse new folder")
old_folder = Button(text = "browse old folder")
logo.grid(row=0, column=8)
new_folder.grid(row=1,column=1)
old_folder.grid(row=1,column=500)
root.mainloop()
答案 0 :(得分:2)
就像Novel提到的那样,空列的宽度为0,因此您的column=8
与column=2
的作用相同,而column=500
与column=3
的作用相同。当然,您的列0的宽度为零。正如Novel建议的那样,您可以使用.pack
代替.grid
,但不要将.pack
和.grid
混入同一个容器窗口小部件中,在这种情况下,它是根窗口。但是,您可以通过.grid
sticky
arg实现所需的功能,但是还需要为包含old_folder
按钮的列设置列权重。例如:
import tkinter as tk
root = tk.Tk()
root.geometry("500x500")
root.columnconfigure(2, weight=1)
logo = tk.Label(root, text="New File Finder")
new_folder = tk.Button(root, text="browse new folder")
old_folder = tk.Button(root, text="browse old folder")
logo.grid(row=0, column=1)
new_folder.grid(row=1,column=0)
old_folder.grid(row=1,column=2, sticky="e")
root.mainloop()
我还更改了“星号”导入,因为这会将130个Tkinter名称转储到您的名称空间中,这很麻烦,浪费空间,并且可能导致名称冲突,尤其是如果您进行其他星号导入。
正如Bryan提到的,.pack(side=RIGHT)
实际上并没有将窗口小部件强制到容器的右侧,它只是告诉.pack
将窗口小部件打包到该侧。因此,如果您用.pack(side=RIGHT)
打包了一堆小部件,它们将从右到左打包,而不是从默认的上到下打包。您可以使用anchor
arg来精确控制要放置在小部件分配空间内的位置。还要看看各种pad
参数。有关详细信息,请参见the Pack docs。