簡體   English   中英

Python Tkinter OOP 使用框架 inheritance。 初始化的標簽不會顯示在 GUI 中

[英]Python Tkinter OOP using Frame inheritance. Initialized labels won't show in GUI

我有以下代碼。

import tkinter as tk

class Window(tk.Frame):

 def __init__(self, parent = None):

    tk.Frame.__init__(self, parent)
    self.parent = parent
    
    self.yearLabel = tk.Label(self, text="Label",width=5)
    self.yearLabel.grid(row=0,column=1)

if __name__ == "__main__":
    root = tk.Tk()
    
    app = Window(root)
 
    root.mainloop() 

但是,除非我更改 label 以便傳入 parent 而不是 self 例如 self.yearLabel = tk.Label(parent, text="Label",width=5),否則不會將任何內容輸出到 GUI 中。 在所有其他示例中,我看到傳入“self”以顯示到 GUI。 我不確定這里發生了什么或我錯過了什么讓這個框架 inheritance 像示例中那樣工作。

這是因為您沒有使用任何布局管理器放置框架app

import tkinter as tk

class Window(tk.Frame):

 def __init__(self, parent = None):

    tk.Frame.__init__(self, parent)
    self.parent = parent

    self.yearLabel = tk.Label(self, text="Label",width=5)
    self.yearLabel.grid(row=0,column=1)

if __name__ == "__main__":
    root = tk.Tk()

    app = Window(root)
    app.pack()  # put the frame using Pack layout manager

    root.mainloop()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM