[英]Python Tkinter - Tab classes
我正在嘗試在我的程序中構建標簽。 每個選項卡都有不同的功能、標簽、條目等等......我的想法是創建一個類似於 mainTab 文件的東西來創建所有選項卡。 是否可以從mainTab
文件繼承並根據mainTab
創建 Tab 類? 我想分開每個 Tab 類,因為每個類都有很多方法,我不想在一個文件中編寫整個 Tab 類。 是否可以創建? 如果是,我如何創建選項卡的tab_control
並將其連接到tab_control
?
例如:這就是我寫的,一個類中的所有選項卡(我不想像那樣創建它)
class CreateLayout:
def __init__(self, window):
self.window = window
window.title('TITLE')
window.geometry('800x600')
# Create Tab Control
tab_control = ttk.Notebook(window)
# Tab1
tab1 = ttk.Frame(tab_control)
tab_control.add(tab1, text='Hashtag')
tab_control.pack(expand=1, fill="both")
# Tab2
tab2 = ttk.Frame(tab_control)
tab_control.add(tab2, text='Following me')
tab_control.pack(expand=1, fill="both")
我想創建從CreateLayout
類繼承的子類(Tabs),並在每個子類上編寫自己的 Tab 邏輯,其中包含方法、布局等...
我希望我的問題很清楚,如果沒有,請告訴我。
最重要的是,我要創建的是從CreateLayout
繼承的類,並在CreateLayout
構建選項卡。
例如
class CreateLayout:
def __init__(self, window):
self.window = window
tab_control = ttk.Notebook(window)
tab1 = Tab1(window)
tab_control.add(tab1, text='Hashtag')
類似的東西。
是否可以從 mainTab 文件繼承並根據需要創建 Tab 類?
對的,這是可能的。 Tkinter 沒有對繼承施加任何限制。 事實上,tkinter 使這變得非常簡單,因為它可以從 tkinter 小部件繼承。 關鍵是您的選項卡從tk.Frame
繼承,以便它們可以被視為普通小部件。
例如,主題標簽選項卡定義可能如下所示:
class HashtagTab(tk.Frame):
def __init__(self, master):
super().__init__(master)
label = tk.Label(self, text="This is the hashtag tab")
label.pack(padx=20, pady=20)
其他選項卡將遵循相同的模式。 只要所有小部件都是self
后代,您就可以在該類中放置任何您想要的代碼,並且該類中的小部件不會干擾任何其他類中的小部件。
在您的主代碼中,您將創建此類的一個實例並將其添加到選項卡控件,就像您添加任何其他框架一樣:
tab_control = ttk.Notebook(window)
...
hashtag_tab = HashtagTab(tab_control)
following_tab = FollowingTab(tab_control)
...
tab_control.add(hashtag_tab, text="Hashtag")
tab_control.add(following_tab, text="Following")
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.