python-3.x 帧随grid_propagate消失

jk9hmnmh  于 2023-04-22  发布在  Python
关注(0)|答案(1)|浏览(130)

我最近遇到了这个问题...我创建了一些帧,当我在运行之前对它们使用grid_propagate(False)时,窗口上的帧是空的。如果我在没有传播函数的情况下使用idle运行它,即使我之后调用grid_propagate方法,也会有帧。

import tkinter as tk

root = tk.Tk()
frame = tk.Frame(root)
text = tk.Text(frame, bg='#000000', fg='#00cc00')

frame.grid(row=0, column=0)
text.grid(row=0, column=0)
frame.grid_propagate(0)

我把特定的命令放在一个注解字符后面。它只对我有效,当我运行它之后在空闲中单独输入它们时。

xoshrz7s

xoshrz7s1#

当你调用grid_propagate(0)时,你要求一个小部件尝试它请求的大小,忽略窗口内的任何东西。这个请求在下一次绘制窗口时被接受。
因为你没有给予框架一个大小,它默认为一个像素宽一个像素高。因此,当你在IDLE之外运行程序时,窗口(几乎)是不可见的。这是正确的,预期的行为。因为文本小部件在这个1x1框架内,它也是不可见的。
您在IDLE中看到的行为是在IDLE中交互运行的副作用。

相关问题