Python 为什么我的按钮不在GUI窗口的最右边?
我的按钮上的Python 为什么我的按钮不在GUI窗口的最右边?,python,tkinter,Python,Tkinter,我的按钮上的列值设置为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(
列
值设置为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,因此您的
列=8
与列=2
具有相同的效果,而列=500
与列=3
具有相同的效果。当然,列0的宽度为零。您可以使用.pack
而不是.grid
,就像小说中建议的那样,但是不要将.pack
和.grid
混合到同一个容器小部件中,在这种情况下,它是根窗口。但是,您可以通过.grid
sticky
arg实现所需,但还需要为包含旧文件夹的列设置列权重。例如:
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)
打包一组小部件,它们将从右到左打包,而不是从默认的从上到下打包。您可以使用锚定
arg精确地控制小部件分配空间中希望小部件放置的位置。还可以查看各种pad
args。有关详细信息,请参阅。空列的宽度为0(默认情况下),因此输入多少并不重要。用pack(side=RIGHT)
把东西放在右边。@Novel:小心你的术语。它不会把它放在窗口的右边,它会把它放在任何可用空间的右边,这很可能不是窗口的右边。看看我的答案。我将详细介绍网格管理器的行为。