SkillAgentSearch skills...

CTkMenuBar

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

Install / Use

/learn @Akascape/CTkMenuBar

README

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

<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/Akascape/CTkMenuBar?&color=white&label=Download%20Source%20Code&logo=Python&logoColor=yellow&style=for-the-badge" width="400">

Menu Types

  • CTkMenuBar

menubar

Usage

from CTkMenuBar import *
...
menu = CTkMenuBar(master=root)
button = 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)
button = 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.

View on GitHub
GitHub Stars155
CategoryDevelopment
Updated26d ago
Forks17

Languages

Python

Security Score

100/100

Audited on Mar 7, 2026

No findings