【发布时间】:2021-04-22 03:53:18
【问题描述】:
在我的简单 GUI 中,每当我按下按钮时,文本应该被打包在框架内,但在按下框架后就会消失。
代码如下:
import tkinter as tk
window=tk.Tk()
window.geometry('600x600')
window.resizable(False,False)
f1=tk.Frame(window,height=200,width=200,bg='yellow')
f1.place(x=400,y=400)
some=tk.StringVar()
def press():
msg=some.get()
l1=tk.Label(f1,text=str(msg))
l1.pack()
e1=tk.Entry(window,textvariable=some)
e1.pack()
b1=tk.Button(window,text='press',command=press)
b1.pack()
window.mainloop()
文本被打包,但框架消失了。
【问题讨论】:
-
我认为这是因为您试图同时使用
place和pack几何管理器(它们不能很好地配合使用)。 -
在复杂的 GUI 方面,位置比包装更精确。那么有什么办法可以解决这个问题呢?
-
对 l1 使用 .place() 而不是 .pack()
-
就我个人而言,我 99% 的工作都是使用
grid来完成的——而且我从来没有觉得这样做会失去太多的控制权。此外,当您使用place时,当您以绝对值而不是相对值指定位置或尺寸时,很容易变得依赖于分辨率和/或窗口大小。为了解决这个问题,我建议你选择一个经理并至少在每个框架内都坚持下去。