/CTkMenuBar

Modern menu/tool bar widget library for customtkinter. (extension/add-on)

Primary LanguagePythonCreative Commons Zero v1.0 UniversalCC0-1.0

CTkMenuBar

Modern menu bar widget library for customtkinter.

Features

  • Custom dropdown menus
  • Add menu in top of title bar
  • Classic and modern menubar with full customisability
  • Add commands and submenus

Installation

pip install CTkMenuBar

GitHub repo size

Menu Types

  • CTkMenuBar

menubar

Usage

from CTkMenuBar import *
...
menu = CTkMenuBar(master=root)
menu.add_cascade("Menu")
...

Methods

  • .add_cascade(text, ctk_button_args...): add new menu button in the menu bar
  • .configure(*args): update parameters

Arguments

Parameter Description
master define the master widget, can be root or frame
bg_color set the bg color of the menu bar
height set height of the menu bar
width set width of the menu bar buttons
padx set internal padding between menu bar buttons
pady set internal padding in top and bottom of menu bar
postcommand add a command before spawing the dropdown
*other frame parameters other ctk frame parameters can also be passed
  • CTkTitleMenu

This title menu is only supported in windows OS!

titlebar

Usage

from CTkMenuBar import *
...
menu = CTkTitleMenu(master=root)
menu.add_cascade("Menu")
...

Methods

  • .add_cascade(text, ctk_button_kwargs...): add new menu button in the menu bar

Arguments

Parameter Description
master define the master window, can be root or toplevel only
bg_color set the bg color of the menu bar
title_bar_color set color to the header (only works with windows 11), RGB order: 0x00rrggbb
width set width of the menu bar buttons
padx set internal padding between menu bar buttons
x_offset set the x distance from the header
y_offset set the y distance from the header
postcommand add a command before spawing the dropdown
*other frame parameters other ctk frame parameters can also be passed

CustomDropdownMenu

This is the common dropdown menu class which is used by both ctkmenubar and ctktitlemenu.

Usage

from CTkMenuBar import *
...
dropdown = CustomDropdownMenu(widget=button)
dropdown.add_option(option="value") 
dropdown.add_separator() 
submenu = dropdown.add_submenu("submenu") 
submenu.add_option(option="value") 
...

Methods

  • .add_option(option, command): add option to the dropdown and attach the command
  • .add_separator(): add a separator line between the options
  • .add_submenu(submenu_name): add a submenu as option
  • .configure(*args): change dropdown menu options

Arguments

Parameter Description
widget attach the dropdown to the cascade widget
master optional, change the spawn window if required
bg_color set the bg color of the dropdown
fg_color set the option button fg color
text_color set the text color
hover_color set hover color of the option button
separator_color change the separator line color
font change the font of the text
width set width of the dropdown
height set height of the dropdown
padx set padding in x for the dropdown frame
pady set padding in y for the dropdown frame
*other frame parameters other ctk frame parameters can also be passed

Credits goes to LucianoSaldivia for providing this dropdown menu class.

Credits goes to MustafaHilmiYAVUZHAN for optimized title menu.