I'm trying to change the background colour of tab headers and it works perfectly when I run the app for the first time however when I click on other menu buttons and turn back to page where the tabs are it doesn't even show the tabs! I can only see an empty canvas! How can I fix the problem? Can anyone help me please? Thanks in advance for your help
def ch_fr():
frame_ch = Frame(screen)
frame_ch.place(relx=0, rely=0, relwidth=1, relheight=1)
WIDTH, HEIGTH = 1540, 821
canvas2 = Canvas(frame_ch, width=WIDTH, height=HEIGTH, bd=0, highlightthickness=0)
canvas2.place(relx=0, rely=0, relwidth=1, relheight=1)
firstcolor = "#f36958"
secondcolor = "#132d7d"
style = ttk.Style()
style.theme_create("th_chp", parent="alt", settings={
"TNotebook": {"configure": {"tabmargins": [2, 5, 2, 0]}},
"TNotebook.Tab": {
"configure": {"padding": [5, 1], "background": firstcolor},
"map": {"background": [("selected", secondcolor)],
"expand": [("selected", [1, 1, 1, 0])]}}})
style.theme_use("th_chp")
notebook = ttk.Notebook(canvas2)
tab1 = Frame(notebook)
IMAGE_PATH = 'empty2.png'
WIDTH, HEIGTH = 1540, 821
canvas3 = Canvas(tab1, width=WIDTH, height=HEIGTH, bd=0, highlightthickness=0)
canvas3.place(relx=0, rely=0, relwidth=1, relheight=1)
img2 = ImageTk.PhotoImage(Image.open(IMAGE_PATH).resize((WIDTH, HEIGTH), Image.ANTIALIAS))
canvas3.background = img2
canvas3.create_image(0, 0, anchor="nw", image=img2)
tab2 = Frame(notebook, bg="blue")
notebook.add(tab1, text="Chapter1")
notebook.add(tab2, text="Chapter2")
notebook.pack(expand=True, fill="both")
Chapters = Menu(mainmenu, tearoff=0)
mainmenu.add_cascade(label="Chapters", menu=Chapters)
Chapters.add_command(label="Chapters", command=ch_fr) #this is the menu button that open the tab page
source https://stackoverflow.com/questions/69789838/tkinter-notebook-tab-header-background-error
Comments
Post a Comment