我希望同一列中的按钮/标签与特定/第一个按钮/标签共享相同的宽度。问题是 winfo_width() 似乎没有返回我想要的。 winfo_width()的返回值是按钮的数倍。
我不想让宽度由我选择的数字固定。因此,我没有找到解决问题的办法。
这是我的部分代码:
button_1.update_idletasks()
print(button_1.winfo_width())
new_label = Label(frame_1, bg= "#8432C7", width = 30, height = 5)
new_label.grid(row = 2, column = 0)
由于我没有 10 的声誉来发布图像,这里是生成界面的链接:
如果您能看到上图,您应该会发现下方的标签 (width = 30) 大于上方的按钮 (width = 157 ?)。
但是,根据我的尝试,157似乎不是button_1的宽度。我对 winfo_width() 在这里返回的内容感到困惑。因此,我想知道 winfo_width() 返回什么(为什么 winfo_width() 返回 157 应该小于 30)以及如何获得按钮的确切宽度。
最近刚开始学Tkinter,卡在这里一个小时。 提前感谢任何可以给我建议的人。
最佳答案
有趣的事实:您根本不必为此烦恼。
当您网格化
您的小部件时,只需传递sticky
:
import tkinter as tk
root = tk.Tk()
button_1 = tk.Button(root,text="button_1")
button_1.grid(row = 1, column = 0, sticky="ew")
new_label = tk.Label(root, bg= "#8432C7", height = 5)
new_label.grid(row = 2, column = 0, sticky="ew")
root.mainloop()
然后您的列将自动调整并缩放到相同的大小。
关于python - 为什么 winfo_width() 返回的按钮小部件尺寸大于其实际尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56232031/