簡體   English   中英

Python Tkinter - 選項卡類

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

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