在Tkinter中调整大小时缩小小部件(我可以决定收缩行为吗?)

时间:2018-02-23 20:42:20

标签: python tkinter window-resize

我正在使用Python / Tkinter设计GUI。调整根框架的大小使得几何控制器根据可用的空间调整GUI中的小部件并调整其大小,到目前为止一切都很好。

但是......其中一个首先缩小的小部件是左对齐标签。我希望它从右侧开始消失,而Tkinter同时从左侧和右侧减少它。

以下是复制情况的示例代码:

import tkinter as tk

root = tk.Tk()
my_font = ("Consolas", 12)
label1 = tk.Label(root, text="Label 1\nGoes on the Left", justify="left", font=my_font, bg='cyan')
label2 = tk.Label(root, text="Label 2\nGoes on the Right", justify="left", font=my_font, bg='magenta')
label3 = tk.Label(root, text="Label 3 - Goes in the middle\n(During a resize, this shrinks first)",
                  justify="left", font=my_font, bg='orange')

label1.pack(side=tk.LEFT)
label2.pack(side=tk.RIGHT)
label3.pack(side=tk.LEFT) # packed last, so it gets reduced first during a resize

root.mainloop()

以下是相同代码所发生情况的图片:resize in action

有没有办法告诉几何控制器如何在窗口调整大小期间减少小部件?

非常感谢。

1 个答案:

答案 0 :(得分:0)

答案是对label3的简单配置。添加锚=' w'属性,它将按照您的描述运行。标签将仅从右侧缩小。

label3 = tk.Label(root, text="Label 3 - Goes in the middle\n(During a resize, this shrinks first)", justify="left", font=my_font, bg='orange', anchor='w')