帧与grid_propagate一起消失

时间:2015-02-15 19:49:10

标签: python python-3.x tkinter frame

我最近遇到了这个问题...我创建了一些帧,当我在运行它之前使用grid_propagate(False)时,窗口上的帧是空的。如果我在没有传播函数的情况下以空闲方式运行它,那么即使我之后调用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)

我将特定命令放在注释char后面。它只适用于我,当我在运行它后在空闲中单独输入它们时。

1 个答案:

答案 0 :(得分:1)

当您致电grid_propagate(0)时,您要求小部件尝试成为其请求的大小,忽略窗口内的任何内容。下次绘制窗口时,此请求即可兑现。

因为你没有给框架一个尺寸,它默认为一个像素宽一个像素高。因此,当您在IDLE之外运行程序时,窗口(几乎)不可见。这是正确的预期行为。由于文本小部件位于此1x1框架内,因此它也是不可见的。

您在IDLE中看到的行为是在IDLE中以交互方式运行的副作用。

相关问题