gpt4 book ai didi

python - Tkinter Frame 使用 super() 实例化。为什么我不能将 Label 小部件设为其子部件?

转载 作者:行者123 更新时间:2023-12-01 02:54:10 24 4
gpt4 key购买 nike

这涉及 Python 和 Tkinter。

  1. 我希望有一个标签小部件显示单词“Meow”。

  2. Label 小部件应该是 Tk 窗口中的 Frame 的子元素。

这看起来很简单,但下面的代码不起作用 - 什么也没有出现:

import tkinter as tk

class Options(tk.Frame):

def __init__(self, gui_parent):

super().__init__()
tk.Label(self, text="Meow").pack()

class Gui(tk.Tk):

def __init__(self):

super().__init__()
Options(self)

gui = Gui()
gui.mainloop()

然后我进行了实验:如果我将标签小部件更改为 tk.Label(gui_parent, text="Meow").pack() ,然后出现窗口的内容。 (然而,这不是“正确”的行为,因为我希望 Label 小部件成为 Frame 小部件的直接子级,而不是 Tk 父窗口的直接子级。)

据我了解,super().__init__()应该实例化一个框架。然后,标签小部件应该能够通过 self 访问框架。 。事实并非如此。

我哪里出错了?

最佳答案

你不pack你的Options小部件。尝试使用:

Options(self).pack()

另外,我要明确指出 OptionsGui的 child ,所以你应该通过 gui_parent__init__ Options的功能对象:

def __init__(self, gui_parent):
super().__init__(gui_parent)
tk.Label(self, text="Meow").pack()

关于python - Tkinter Frame 使用 super() 实例化。为什么我不能将 Label 小部件设为其子部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44395083/

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