[英]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.