pythontkinter-Tab类

pythontkinter-Tab类,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我正在尝试在我的程序中构建选项卡。每个选项卡都有不同的函数、标签、条目等。。。 我的想法是创建一个类似mainTab的文件来创建所有选项卡。 是否可以从mainTab文件继承并创建尽可能多的选项卡类? 我想分开每个选项卡类,因为每个类都有很多方法,我不想把整个选项卡类写在一个文件中。 是否有可能创建? 如果是,如何创建选项卡的实例并将其连接到选项卡控件 例如:这是我写的,一个类中的所有选项卡,我不想这样创建 我想创建从CreateLayout类继承的子类选项卡,并在每个子类上使用方法、布局等编写

我正在尝试在我的程序中构建选项卡。每个选项卡都有不同的函数、标签、条目等。。。 我的想法是创建一个类似mainTab的文件来创建所有选项卡。 是否可以从mainTab文件继承并创建尽可能多的选项卡类? 我想分开每个选项卡类,因为每个类都有很多方法,我不想把整个选项卡类写在一个文件中。 是否有可能创建? 如果是,如何创建选项卡的实例并将其连接到选项卡控件

例如:这是我写的,一个类中的所有选项卡,我不想这样创建

我想创建从CreateLayout类继承的子类选项卡,并在每个子类上使用方法、布局等编写自己的选项卡逻辑

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

总之,我要创建的是从CreateLayout继承的类,并在CreateLayout构建选项卡

比如说

差不多吧

是否可以从mainTab文件继承并创建尽可能多的选项卡类

是的,这是可能的。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")
...

您必须将Tab1window更改为Tab1tab_控件。相关:,在您的情况下,您必须从Frame继承。仅此而已?这就是我在主文件上创建选项卡所需要做的全部工作?就是这样吗?:是的,1。选项卡必须是容器小部件,即公共框架。2.选项卡的父级必须是Notebook小部件?那么另一个文件中的主代码呢,我也应该从他那里继承吗?@E.Bolandian:不,你不应该从主代码中继承。继承不是为了共享数据,继承定义了一个是关系-HashTab是一个框架,但它不是一个CreateLayou。
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)
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")
...