1
這涉及Python和Tkinter。Tkinter框架用super()實例化。爲什麼我不能讓一個標籤小部件成爲它的孩子?
我希望有一個標籤小部件顯示單詞「喵」。
標籤小部件應該是在Tk窗口中的幀的孩子。
這看起來很簡單,但下面的代碼不工作 - 出現什麼:
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()
然後我嘗試:如果我改變Label窗口小部件tk.Label(gui_parent, text="Meow").pack()
,窗口的內容,那麼會出現。 (但是這不是'正確的'行爲,因爲我希望Label小部件是Frame小部件的直接子元素,而不是Tk父窗口的子元素。)
據我的理解,super().__init__()
應該實例化一個Frame 。標籤小部件應該能夠通過self
訪問框架。事實並非如此。
我哪裏出錯了?
謝謝!我不知道必須打包,還是'init'中的gui_parent。還有一個問題:如何修改實例化的Frame的背景顏色?我嘗試將它改爲'super().__ init __(background ='red')'和'super().__ init __(bg ='red')',我甚至嘗試過'self.config(background ='red') '但他們都沒有工作。這個想法是在一個紅色的背景上有「Meow」。 – anonnoir
@anonnoir:對不起,我真的不知道。嘗試看看以下問題:https://stackoverflow.com/questions/11413459/adding-label-to-frame-in-tkinter-ignores-the-attributes-of-frame,https://stackoverflow.com/問題/ 27633545/tkinter-frame-background-disappear-when-i-associate-a-label-to-it,https://stackoverflow.com/questions/16639125/how-do-i-change-the-background-對的一框架中有Tkinter的。 –
我爲這些問題中的一些問題準備了答案,尤其是這一個 - https://stackoverflow.com/a/11414185/283169。然後它工作。感謝您的指導! – anonnoir