ScottH ScottH -4 years ago 120
Python Question

Changing the tab sizes of a Notebook widget in Python 3

I'm trying to change the size of the tabs in a tkinter Notebook widget, but I haven't been able to find anything that actually changes the width and height of the tabs. Is there not a direct way to change them? Or is there some way to get around it? I'm currently using python 3 if that changes anything.

Answer Source

I think you want padding in the ttk notebook's tabs?

In which case you can use a custom style, which you can adjust to your taste for colors padding etc.

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
style = ttk.Style()
style.theme_create( "MyStyle", parent="alt", settings={
        "TNotebook": {"configure": {"tabmargins": [2, 5, 2, 0] } },
        "TNotebook.Tab": {"configure": {"padding": [100, 100] },}})

style.theme_use("MyStyle")

a_notebook = ttk.Notebook(root, width=200, height=200)
a_tab = ttk.Frame(a_notebook)
a_notebook.add(a_tab, text = 'This is the first tab')
another_tab = ttk.Frame(a_notebook)
a_notebook.add(another_tab, text = 'This is another tab')
a_notebook.pack(expand=True, fill=tk.BOTH)

tk.Button(root, text='Some Text!').pack(fill=tk.X)

root.mainloop()
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download