框架随 grid_propagate 消失

问题描述 投票:0回答:2

我最近遇到了这个问题......我创建了一些框架,当我在运行它之前对它们使用

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)

我把具体命令放在注释字符后面。它只对我有用,当我在运行后在空闲状态下分别输入它们时。

python python-3.x tkinter frame
2个回答
4
投票

当您调用

grid_propagate(0)
时,您是在要求一个小部件尝试达到它所请求的大小,而忽略窗口内的任何内容。下次绘制窗口时,将满足此请求。

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

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


0
投票

我相信布莱恩的回答是正确的。我只想补充一点,您必须同时指定高度和宽度才能使框架可见。相信我,否则无论如何都不会出现! 🥺

© www.soinside.com 2019 - 2024. All rights reserved.