gpt4 book ai didi

python - tkinter 的 .pack_propagate() 方法

转载 作者:太空宇宙 更新时间:2023-11-03 12:22:06 26 4
gpt4 key购买 nike

我正在尝试使用 Tkinter,因为我试图弄清楚是否有一种方法可以在不使用 Canvas 的情况下设置 tkinter 的窗口大小。我发现了这个如何set frame size question on SO's Question & Answer .所以我继续通过编写一个非常小的程序来显示文本标签来测试它。但是我发现它“丢失”了,或者当我使用 frame.pack_propagate(0)

时消失了
import tkinter as tk

root = tk.Tk()
frame = tk.Frame(root, width=400, height=400)
# Does not work at the moment, textBox is missing
# frame.pack_propagate(0)
frame.pack()

textBox = tk.Label(frame, text="(x,y): ")
textBox.pack()

root.mainloop()

所以我的问题是,你能解释一下为什么当我使用 frame.pack_propagate(0) 而不是 frame.pack() 时我的文本框(标签)没有出现吗> 方法?其次,有没有办法在不使用 Canvas 的情况下设置窗口大小?我想知道是因为我正在编写一系列小程序来教我的 friend 有关 tkinter 的知识,然后再向他介绍 canvas。如果我的 tkinter 示例中的窗口大小都相同,那就太好了。我也想知道(好奇)。非常感谢。

我在 MAC OS 10.5.8 上使用 python 3.2.2。

最佳答案

pack_propagate 只设置一个标志,它不会导致框架被放置在小部件中。它不能替代调用 pack

换句话说,你必须这样做:

# put the frame in its parent
frame.pack()

# tell frame not to let its children control its size
frame.pack_propagate(0)

# put the textbox in the frame
textBox.pack()

关于python - tkinter 的 .pack_propagate() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9996599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com