PythonTkinter选项卡类

2024-04-28 12:05:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在我的程序中构建选项卡。每个选项卡都有不同的函数、标签、条目等。。。 我的想法是创建一个类似mainTab的文件来创建所有选项卡。 是否可以从mainTab文件继承并创建尽可能多的选项卡类? 我想分开每个选项卡类,因为每个类都有很多方法,我不想把整个选项卡类写在一个文件中。 是否有可能创建? 如果是,如何创建选项卡的实例并将其连接到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类继承的子类(制表符),并在每个子类上使用方法、布局等编写自己的制表符逻辑

我希望我的问题是明确的,如果没有请让我知道

总之,我要创建的是从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')

差不多吧


Tags: 文件方法textselfadd标签windowtab
1条回答
网友
1楼 · 发布于 2024-04-28 12:05:05

Is it possible to inherit from the mainTab file and create Tab classes as much as i want?

是的,这是可能的。Tkinter没有对继承施加任何限制。事实上,tkinter使这变得非常容易,因为它可以从tkinter小部件继承。关键是您的选项卡要从tk.Frame继承,以便可以将它们视为普通小部件

例如,hashtag选项卡定义可能如下所示:

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")
...

相关问题 更多 >