我正试着在我的程序中建立Tabs。每个Tab都有不同的函数,标签,条目等等.我的想法是创建类似于创建所有选项卡的mainTab文件。可以从mainTab文件继承并创建我想要的Tab类吗?我想分离每个Tab类,因为每个类都有很多方法,而且我不想在一个文件上编写整个选项卡类。有可能创造吗?如果是,我如何创建选项卡的实例化并将其连接到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')差不多是这样的。
发布于 2020-03-25 14:23:45
可以从mainTab文件继承并创建任意数量的Tab类吗?
是的,这是可能的。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控件中,就像其他任何框架一样:
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")
...https://stackoverflow.com/questions/60848270
复制相似问题