Saltar al contenido

Cambiar el color del “encabezado de la pestaña” en ttk.

Solución:

Puede intentar crear un tema personalizado.

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

mygreen = "#d2ffd2"
myred = "#dd0202"

style = ttk.Style()

style.theme_create( "yummy", parent="alt", settings={
        "TNotebook": {"configure": {"tabmargins": [2, 5, 2, 0] } },
        "TNotebook.Tab": {
            "configure": {"padding": [5, 1], "background": mygreen },
            "map":       {"background": [("selected", myred)],
                          "expand": [("selected", [1, 1, 1, 0])] } } } )

style.theme_use("yummy")

note = ttk.Notebook(root)
f1 = ttk.Frame(note, width=300, height=200)
note.add(f1, text="First")
f2 = ttk.Frame(note, width=300, height=200)
note.add(f2, text="Second")
note.pack(expand=1, fill="both", padx=5, pady=5)

tk.Button(root, text="yummy!").pack(fill="x")

root.mainloop()

EDITAR

La documentación de ttk más detallada es del mundo tcl / tk

p.ej.

http://www.tcl.tk/man/tcl/TkCmd/ttk_notebook.htm

Para obtener algunos ejemplos útiles basados ​​en Python, puede obtener el paquete pyttk-samples de http://code.google.com/p/python-ttk/

Había estado usando la respuesta de Oblivion durante algún tiempo, pero encontré un problema en el que los contornos del botón de diálogo abrir / guardar desaparecían y los botones de verificación en los widgets de texto nunca parecían estar marcados (incluso cuando estaban marcados). Entonces, traduje el código del tema en alguna configuración de estilo y demás para resolver el problema (lo resolvió). Esto le permitirá cambiar el color de la barra de pestañas, el fondo / primer plano de la pestaña y el fondo / primer plano de la pestaña activa. Además, no causará problemas con el resto del tema elegido. Es esencialmente el mismo código del tema traducido. Entonces, realmente, Oblivion merece la mayor parte del crédito.

Style().configure("TNotebook", background=myTabBarColor);
Style().map("TNotebook.Tab", background=[("selected", myActiveTabBackgroundColor)], foreground=[("selected", myActiveTabForegroundColor)]);
Style().configure("TNotebook.Tab", background=myTabBackgroundColor, foreground=myTabForegroundColor);

Editar: Aparentemente, esta solución no funciona en Windows. Lo probé en Linux (varias versiones de Xubuntu).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *