如何在不替换上一个选项卡的情况下在 tkinter 的笔记本小部件中创建新选项卡?
How do I create a new tab in a notebook widget in tkinter without replacing the previous tab?
所以我用 Python Tkinter 编写了这个程序,它在两个不同的选项卡上有两个框架。第一个有一个按钮,它应该创建与第一个选项卡具有相同框架的第三个选项卡。但是,它没有这样做,而是替换了第一帧。我该如何解决这个问题?
到目前为止,这是我的代码:
# Imports
from tkinter import *
from tkinter import ttk
# Screen
root = Tk()
root.geometry("600x600")
root.title("Example")
# Create New Tab Function
def CreateANewTabFunc():
TabControl.add(Frame1, text="Tab 3")
# Tab Control - Used for Placing the Tabs
TabControl = ttk.Notebook(root)
TabControl.pack()
# Frame 1 = Main Frame
Frame1 = Frame(TabControl, width=500, height=500, bg="Orange")
Frame1.pack()
# Frame 2 = Settings or Something Else
Frame2 = Frame(TabControl, width=500, height=500, bg="Green")
Frame2.pack()
TabControl.add(Frame1, text="Tab 1")
TabControl.add(Frame2, text="Tab 2")
ExampleButton = Button(Frame1, text="Click Here to Add New Tab to notebook", command=CreateANewTabFunc)
ExampleButton.pack()
# Mainloop
root.mainloop()
您不能在两个选项卡上使用相同的框架。如果要创建第三个选项卡,则需要创建第三个框架。
def CreateANewTabFunc():
another_frame = Frame(TabControl, bg="pink")
TabControl.add(another_frame, text="Tab 3")
所以我用 Python Tkinter 编写了这个程序,它在两个不同的选项卡上有两个框架。第一个有一个按钮,它应该创建与第一个选项卡具有相同框架的第三个选项卡。但是,它没有这样做,而是替换了第一帧。我该如何解决这个问题?
到目前为止,这是我的代码:
# Imports
from tkinter import *
from tkinter import ttk
# Screen
root = Tk()
root.geometry("600x600")
root.title("Example")
# Create New Tab Function
def CreateANewTabFunc():
TabControl.add(Frame1, text="Tab 3")
# Tab Control - Used for Placing the Tabs
TabControl = ttk.Notebook(root)
TabControl.pack()
# Frame 1 = Main Frame
Frame1 = Frame(TabControl, width=500, height=500, bg="Orange")
Frame1.pack()
# Frame 2 = Settings or Something Else
Frame2 = Frame(TabControl, width=500, height=500, bg="Green")
Frame2.pack()
TabControl.add(Frame1, text="Tab 1")
TabControl.add(Frame2, text="Tab 2")
ExampleButton = Button(Frame1, text="Click Here to Add New Tab to notebook", command=CreateANewTabFunc)
ExampleButton.pack()
# Mainloop
root.mainloop()
您不能在两个选项卡上使用相同的框架。如果要创建第三个选项卡,则需要创建第三个框架。
def CreateANewTabFunc():
another_frame = Frame(TabControl, bg="pink")
TabControl.add(another_frame, text="Tab 3")