如何使用 tkinter 正确定位我的小部件相对于彼此以及窗口中心的位置?

问题描述 投票:0回答:1

所以我在创建一个可以动态调整窗口大小的 GUI 时遇到了麻烦。发生的事情是这样的,我希望我的小部件能够随着窗口的宽度自动缩放。我也希望它在变大或太小时时停止缩放。第二点是我想知道如何定位每个小部件以使其具有相对于屏幕大小的位置,以便它可以快速调整以适应不同的窗口大小。我的意思是我想让每个小部件相对于窗口上的某个点或一组点位于相同的位置。例如,屏幕中心会有一个点,小部件通常会停留在那里,或者角落、侧面等。我还想知道是否也可以相对于彼此定位小部件。

我希望了解上面的任何知识,我正在尝试做的是将小部件置于我的代码窗口的中心,如下所示。现在它在顶部,我想把它放在中间。我还想让

home_label
相对于
home_combobox
定位。

from tkinter import *
import ttkbootstrap as tb

root = tb.Window(themename='superhero')

#root
root.title('Learn Vocab')
#add icon here root.iconbitmap()
root.geometry('500x550')

# create home frame
home_frame = tb.Frame(root)
home_frame.pack(anchor=CENTER)

# create home label
home_label = tb.Label(home_frame, text='Main Menu', font=('Helvetica', 36))
home_label.grid(row=0, column=0, pady=50)

# create combobox
home_combobox = tb.Combobox(home_frame, values=['placeholder 1', 'placeholder 2'])
home_combobox.grid(row=1, column=0)

root.mainloop()

我尝试在网上查找,但我什么也看不懂,因为我是一个新程序员。我想知道是否有人可以解决我的问题,最好向我指出一些我可以观看的视频。

python-3.x tkinter ttkbootstrap
1个回答
0
投票

要将小部件放在窗口的中心,您只需将

expand=True
添加到
home_frame.pack(...)
,然后
home_frame
将被放置在为其分配的空间的中心,即您的情况的窗口,因为它是窗口的唯一子节点:

home_frame.pack(anchor=CENTER, expand=True)
© www.soinside.com 2019 - 2024. All rights reserved.