Skip to content

CTkTabview

Tom Schimansky edited this page Mar 20, 2023 · 5 revisions

The CTkTabview creates a tabview, similar to a notebook in tkinter. The tabs, which are created with .add("<tab-name>") are CTkFrames and can be used like CTkFrames. Any widgets can be placed on them.

Example Code:

Example without using classes (not recommended):

tabview = customtkinter.CTkTabview(app)
tabview.pack(padx=20, pady=20)

tabview.add("tab 1")  # add tab at the end
tabview.add("tab 2")  # add tab at the end
tabview.set("tab 2")  # set currently visible tab

button_1 = customtkinter.Button(tabview.tab("tab 1"))
button_1.pack(padx=20, pady=20)

It's also possible to save tabs in extra variables:

tab_1 = tabview.add("tab 1")
tab_2 = tabview.add("tab 2")

button_1 = customtkinter.Button(tab_1)

Example with classes (recommended):

import customtkinter


class MyTabView(customtkinter.CTkTabview):
    def __init__(self, master, **kwargs):
        super().__init__(master, **kwargs)

        # create tabs
        self.add("tab 1")
        self.add("tab 2")

        # add widgets on tabs
        self.label = customtkinter.CTkLabel(master=self.tab("tab 1"))
        self.label.grid(row=0, column=0, padx=20, pady=10)


class App(customtkinter.CTk):
    def __init__(self):
        super().__init__()

        self.tab_view = MyTabView(master=self)
        self.tab_view.grid(row=0, column=0, padx=20, pady=20)


app = App()
app.mainloop()

which results in:

Bildschirm­foto 2023-02-06 um 12 03 34

Arguments:

argument value
master root, frame, top-level
width width in px, tabs will be slightly smaller
height height in px, tabs will be slightly smaller
corner_radius corner radius in px
border_width border width in px
fg_color foreground color of the tabview itself and the tabs, tuple: (light_color, dark_color) or single color
border_color border color, tuple: (light_color, dark_color) or single color
segmented_button_fg_color foreground color of segmented button, tuple: (light_color, dark_color) or single color
segmented_button_selected_color selected color of segmented button, tuple: (light_color, dark_color) or single color
segmented_button_selected_hover_color selected hover color of segmented button, tuple: (light_color, dark_color) or single color
segmented_button_unselected_color unselected color of segmented button, tuple: (light_color, dark_color) or single color
segmented_button_unselected_hover_color unselected hover color of segmented button, tuple: (light_color, dark_color) or single color
text_color text color of segmented button, tuple: (light_color, dark_color) or single color
text_color_disabled text color of segmented buttons when widget is disabled, tuple: (light_color, dark_color) or single color
command function will be called when segmented button is clicked
state "normal" or "disabled"

Methods:

  • .configure(attribute=value, ...)

    All attributes can be configured and updated.

  • .cget(attribute_name)

    Get values of all attributes specified as string.

  • .tab(name)

    Returns reference to tab with given name.

    button = customtkinter.CTkButton(master=tabview.tab("tab name"))
  • .insert(index, name)

    Insert tab with name at position of index, name must be unique.

  • .add(name)

    Add tab with name at the end, name must be unique.

  • .delete(name)

    Delete tab with name.

  • .set(name)

    Set tab with name to be visible.

  • .get()

    Get name of tab that's currently visible.

⚠️ Attention ⚠️

The Github Wiki is outdated, the new documentation can be found at:

https://customtkinter.tomschimansky.com

Clone this wiki locally