如何在小部件Tkinter python右侧显示

时间:2020-04-17 09:54:24

标签: python tkinter frontend

我想创建一个可调整大小的窗口,并且当我调整窗口大小时,我希望其中的所有小部件都可以调整大小。 为此,我尝试使用grid()并为小部件指定相对位置。 这是代码:

c = tk.Canvas(width=400, height=320)
c.grid(row=0, column=0, sticky='w')
Label(root, textvariable=balance_string_var).grid(row=1, column=0, sticky="we")

balance_string_var.set("LABEL")

listbox = Listbox(root, height=30, width=100)
listbox.grid(column=1, row=0, rowspan=2, sticky="e")

我希望列表框向右对齐(外观图)。 on 我该怎么做?谢谢

2 个答案:

答案 0 :(得分:1)

请改用place .place(relx = 0,depend = 0.05,relheight = 0.03,relwidth = 1)!!使用0-1.0而不是像素来完全正确缩放它们,它比网格更灵活

或使用pack(side =“ right”)

答案 1 :(得分:1)

根据weight的{​​{1}}选项的document

weight =

用于在列之间分配额外空间的相对权重。 权重为2的列的增长速度将为权重为1的列的增长速度的两倍。 默认值为0,这意味着该列完全不会增长。

columnconfigure()小部件放在listbox的网格布局的第1列中,第1列是包含该小部件的最后一列,因此调用root将使第1列使用全部剩余的水平空间。

因此在root.rowconfigure(1, weight=1)中设置sticky='e'会将listbox.grid(..., sticky='e')放在listbox窗口的最右边。