首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用pack(pady)的Tkinter小部件没有移动

使用pack(pady)的Tkinter小部件没有移动
EN

Stack Overflow用户
提问于 2021-11-10 17:12:36
回答 1查看 350关注 0票数 1

我正在尝试做一个应用程序,但遇到了问题。有一个Frame

代码语言:javascript
复制
status_frame = Frame(self.root, height=60, style='status.TFrame') # white one at the top 
status_frame.pack_propagate(0)
status_frame.pack(fill=X)

有一个Label

代码语言:javascript
复制
status_label = Label(status_frame, text='Label', style='status_bold.TLabel')

并将其放置在pack()方法中:

代码语言:javascript
复制
status_label.pack(side=LEFT, padx=5)

padx=5工作得很好:

但是,如果我加上pady=25,它不会移动,它会奇怪地削减:

为什么是这样,我如何才能将Label向上移动?我需要把它和pack()放在一起。完整代码:

代码语言:javascript
复制
from tkinter import *
from tkinter.ttk import *

root = Tk()
root.geometry('400x250')
root.resizable(0, 0)

style = Style()
style.configure('status.TFrame', background='white')
style.configure('status_bold.TLabel', background='white', font=('Arial 9 bold'))
style.configure('status.TLabel', background='while')

status_frame = Frame(root, height=60, style='status.TFrame')
status_frame.pack_propagate(0)
main_frame = Frame(root, height=150)
main_frame.pack_propagate(0)
button_frame = Frame(root, height=40)
button_frame.pack_propagate(0)

status_label = Label(status_frame, text='Label', style='status_bold.TLabel')
left_button = Button(button_frame, text='Left')
right_button = Button(button_frame, text='Right')


status_frame.pack(fill=X)
Separator(root, orient=HORIZONTAL).pack(fill=X)
main_frame.pack(fill=X)
Separator(root, orient=HORIZONTAL).pack(fill=X)
button_frame.pack(fill=X)
status_label.pack(side=LEFT, padx=5, pady=25)
right_button.pack(side=RIGHT, padx=5)
left_button.pack(side=RIGHT)

root.mainloop()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-10 18:03:07

因为您已经关闭了status_frame的几何传播,并强制空间正好60像素高,没有足够的空间标签和25像素的填充在顶部和底部。有了这个填充,它只为标签留下10个像素。Tkinter别无选择,只能从标签上删除像素。

如果您试图使用pady向下移动标签的文本,可以将填充添加到顶部,如下所示:

代码语言:javascript
复制
status_label.pack(side=LEFT, padx=5, pady=(25, 0))

如果您希望在顶部和底部填充,那么您不应该关闭几何传播。就我个人而言,我认为很少有这样的情况,关闭传播是正确的事情做。通过将传播保持在适当的位置,框架将增长或缩小,以使其始终适合子部件--这正是您当时想要的99+%。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69917479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档