Python Forum
Tkinter - How can I change the default Notebook border color?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tkinter - How can I change the default Notebook border color?
#1
below my example code:

from tkinter import *
from tkinter import ttk

root = Tk()
root.geometry("400x300")

style=ttk.Style()
style.configure("TNotebook", highlightbackground="#848a98") # if I use another option like - background="#848a98" - the style changes, but with - highlightbackground="#848a98" - option the style doesn't change..

MainNotebook = ttk.Notebook(root, style="TNotebook")
MainNotebook.place(x=16, y=16)

Frame1=Frame(MainNotebook, background="#ffffff", width=200, height=150)
Frame1.pack()     
Frame2=Frame(MainNotebook, background="#ffffff", width=200, height=150)
Frame2.pack()

MainNotebook.add(Frame1, text="Tab1")
MainNotebook.add(Frame2, text="Tab2")

root.mainloop()
my goal is change the default border color in "#848a98" but the option highlightbackground="#848a98" doesn't work. am I using a wrong instruction? how can I solve my issue?

[Image: 56f87f1355823956.jpg]
Reply
#2
I found this theme on web, modified for better effect (reference in script):
Credit: project: JAVER_Assist Author: tywings File: main_gui.py License: MIT License
(you can change margin size to see background color (your selection) better.
Colors are from w3schools color picker here: https://www.w3schools.com/colors/colors_picker.asp
from tkinter import *
from tkinter import ttk
 
root = Tk()
root.geometry("400x300")
root.title("Notebook with theme style")
 
# style=ttk.Style()
# style.configure("TNotebook", highlightbackground="#848a98") # if I use another option like - background="#848a98" - the style changes, but with - highlightbackground="#848a98" - option the style doesn't change..

# Origin (modified) of style code: https://www.programcreek.com/python/example/104109/tkinter.ttk.Notebook Number 25

style = ttk.Style()

style.theme_create('pastel', settings={
    ".": {
        "configure": {
            "background": '#ffffcc', # All except tabs
            "font": 'red'
        }
    },
    "TNotebook": {
        "configure": {
            "background":'#848a98', # Your margin color
            "tabmargins": [2, 5, 0, 0], # margins: left, top, right, separator
        }
    },
    "TNotebook.Tab": {
        "configure": {
            "background": '#d9ffcc', # tab color when not selected
            "padding": [10, 2], # [space between text and horizontal tab-button border, space between text and vertical tab_button border]
            "font":"white"
        },
        "map": {
            "background": [("selected", '#ccffff')], # Tab color when selected
            "expand": [("selected", [1, 1, 1, 0])] # text margins
        }
    }
})

style.theme_use('pastel')

MainNotebook = ttk.Notebook(root)
# MainNotebook.place(x=16, y=16)
MainNotebook.pack(fill=BOTH, expand=True)
 
Frame1=Frame(MainNotebook, background="#ffffff", width=200, height=150)
Frame1.pack()     
Frame2=Frame(MainNotebook, background="#ffffff", width=200, height=150)
Frame2.pack()
 
MainNotebook.add(Frame1, text="Tab1")
MainNotebook.add(Frame2, text="Tab2")
 
root.mainloop()
image:
   
Reply
#3
mm.. interesting, I tried to make some code changes but I can't reach my goal. it's a little bit complicate. can you help me? what I want to do is very simple, I just want to color the Notebook border with "#848a98".

[Image: 381da21355835492.jpg]
Reply
#4
That's in there, search for '# Your margin color'
then you can change color of other or just remove
Reply
#5
Quote:That's in there, search for '# Your margin color'

maybe I'm wrong, but from my tests, it changes the background color and not the border color. to do it I can use simply the "background" option in the "configure" method for the "ttk.Style()" object.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
Question [Tkinter] Can I set background color for each item in tkinter Combobox? water 1 499 Dec-10-2020, 07:48 PM
Last Post: Larz60+
  Tkinter menu font size -method to change tonycat 2 937 Oct-11-2020, 02:43 AM
Last Post: tonycat
  tkinter | Button color text on Click Maryan 2 452 Oct-09-2020, 08:56 PM
Last Post: Maryan
  [tkinter] color change for hovering over button teacher 4 1,873 Jul-04-2020, 06:33 AM
Last Post: teacher
  [PyQt] Increase text size and change color based on temp pav1983 5 584 Jun-22-2020, 10:52 PM
Last Post: menator01
  TKINTER - Change font color for night or day Ayckinn 2 1,019 May-24-2020, 09:25 PM
Last Post: Ayckinn
  Tkinter help (color) Florent 2 672 Mar-01-2020, 02:59 PM
Last Post: Florent
  [PyGUI] Python 3.8.1 Tkinter Widget stete change sasiap 4 655 Feb-14-2020, 10:38 AM
Last Post: sasiap
  Restoring Tkinter widget background to original color pythonprogrammer 1 892 Dec-16-2019, 04:59 AM
Last Post: woooee
  Make Label Text background (default color) transparent using tkinter in python barry76 1 10,665 Nov-28-2019, 10:19 AM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020