我正在嘗試讓 ttk 筆記本顯示基于 2 個類的 2 個選項卡,代碼如下:
import tkinter as tk
from tkinter import ttk
class Dashboard:
def __init__(self,master):
self.master = master
self.frame = tk.Frame(self.master, width = 400, height = 400, bg = "red")
self.frame.pack(expand = True)
class Options :
def __init__(self,master):
self.master = master
self.frame = tk.Frame(self.master, width = 400, height = 400, bg = "blue")
self.frame.pack(expand = True)
class Tabs:
def __init__(self,master):
self.master = master
self.notebook = ttk.Notebook(self.master)
self.options = Options(self.notebook)
self.dashboard = Dashboard(self.notebook)
self.notebook.add(self.options)
self.notebook.add(self.dashboard)
self.notebook.pack(pady=10, expand=True)
class MainGUI:
def __init__(self,master):
self.master = master
self.tabs = Tabs(self.master)
if __name__ == '__main__':
root = tk.Tk()
gui = MainGUI(root)
root.mainloop()
但是,當我運行它時出現此錯誤(僅在我嘗試使用 ttk.Notebook 的“add”方法時發生):_tkinter.TclError: bad window path name "<__main__.Options object at 0x0000016E51653DC0>"
我不明白為什么我的語法是錯誤的,有人可以幫助我嗎?非常感謝 !!
uj5u.com熱心網友回復:
子窗格小部件通常是一個Frame或它的子類。我不確定你在做什么,但你可以通過從 tkinterFrame類中匯出它們來消除錯誤(以及另一個類的類似錯誤),如下所示:
import tkinter as tk
from tkinter import ttk
class Dashboard(tk.Frame):
def __init__(self,master):
super().__init__(master)
self.frame = tk.Frame(self.master, width=400, height=400, bg="red")
self.frame.pack(expand=True)
class Options(tk.Frame):
def __init__(self,master):
super().__init__(master)
self.frame = tk.Frame(self.master, width=400, height=400, bg="blue")
self.frame.pack(expand=True)
class Tabs:
def __init__(self,master):
self.master = master
self.notebook = ttk.Notebook(self.master)
self.options = Options(self.notebook)
self.dashboard = Dashboard(self.notebook)
self.notebook.add(self.options)
self.notebook.add(self.dashboard)
self.notebook.pack(pady=10, expand=True)
class MainGUI:
def __init__(self,master):
self.master = master
self.tabs = Tabs(self.master)
if __name__ == '__main__':
root = tk.Tk()
gui = MainGUI(root)
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/357584.html
