Estoy tratando de hacer una aplicación tkinter que no se vea como una aplicación tkinter. Estoy usando un cuaderno ttk, y las tabs tienen esta pequeña línea de puntos alrededor del texto cuando están seleccionadas. Se ve terrible, y no puedo encontrar una manera de eliminarlo usando estilos o configuración. Aquí hay una captura de pantalla para aclarar:
Edite para el código (no creo que sea de mucha ayuda, ya que en realidad solo estoy tratando de eliminar una cosa del estilo por defecto):
Aquí está la creación del cuaderno:
tabs = ttk.Notebook(mainframe, width=319, height=210, style=style.Notebook) tabs.grid(column=0, row=1, sticky=('n', 'w', 'e', 's')) tabs.columnconfigure(0, weight=1) tabs.rowconfigure(0, weight=1)
Rellenándolo
tab1 = ttk.Frame(tabs) tab1_frame = ttk.Frame(tab1, style=style.Frame) tab1_frame.pack(anchor='center', expand=1, fill='both') # stick some widgets in progress = ttk.Progressbar(tab1_frame, orient="horizontal", length=300, mode="determinate") progress.grid(column=1, row=1, columnspan=2, padx=style.padding, pady=style.padding) progress['maximum'] = 1000 progress['value'] = 500 # More widgets # Another tab tab2 = ttk.Frame(tabs) tab2_frame = ttk.Frame(tab2, style=style.Frame) tab2_frame.pack(anchor='center', expand=1, fill='both') # blah blah
Estilos relevantes:
style_config = Style() style_config.theme_use('default') style_config.configure(self.Notebook, background=self.dark, borderwidth=0) style_config.configure(self.Tab, background=self.dark, foreground='white', padding=self.padding, borderwidth=0) style_config.map(self.Tab, background=[('selected', self.color1)])
Puede eliminar esta marca de enfoque modificando los subelementos del widget de pestaña. Los widgets de Ttk se descomponen en subelementos . El diseño de estos elementos se describe a través del método de layout
(o en un parámetro de diseño de theme_create
). Aquí hay un comando para eliminar marcas de diseño (puede aplicarlo directamente a la pestaña, o cualquier otro tema derivado), la parte comentada es lo que condujo previamente a dibujar el foco (recuperado a través de style.layout("Tab")
)
style.layout("Tab", [('Notebook.tab', {'sticky': 'nswe', 'children': [('Notebook.padding', {'side': 'top', 'sticky': 'nswe', 'children': #[('Notebook.focus', {'side': 'top', 'sticky': 'nswe', 'children': [('Notebook.label', {'side': 'top', 'sticky': ''})], #})], })], })] )
Una forma más intrépida podría ser alterar el color de esta marca de enfoque, por ejemplo, dibujar el mismo color que el fondo.
style.configure("Tab", focuscolor=style.configure(".")["background"])