SkillAgentSearch skills...

CTkMessagebox

A fully customizable messagebox for customtkinter! (extension/add-on)

Install / Use

/learn @Akascape/CTkMessagebox

README

<h1 align="center">CTkMessagebox</h1> <h3 align="center">A modern and fully customizable messagebox for CustomTkinter, A must-have extension pack!</h3> <div align="center">

<a href="https://creativecommons.org/publicdomain/zero/1.0/">License</a> <a href="https://github.com/Akascape/CTkMessagebox/archive/refs/heads/main.zip">Download</a> PyPI Downloads Platform

</div> <div align="center">

3d

</div> <br> <h2 align="center"> Features </h2>
  • Customize all elements inside the messagebox
  • Add custom icons or images
  • Add multiple options according to your wish
  • No ugly looking header or borders
  • Comes with 5 default icons
  • Spawns at center of the screen/app
  • Draggable window
  • Fade-in/Fade-out window effect
<br> <h2 align="center"> Installation </h2> <div align="center">
pip install CTkMessagebox

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

</div> <p align="center"> <br> <h2 align="center"> How it looks? </h2> <div align="center">

Screenshot

</div> <br> <h2 align="center"> Example </h2>
from CTkMessagebox import CTkMessagebox
import customtkinter

def show_info():
    # Default messagebox for showing some information
    CTkMessagebox(title="Info", message="This is a CTkMessagebox!")

def show_checkmark():
    # Show some positive message with the checkmark icon
    CTkMessagebox(message="CTkMessagebox is successfully installed.",
                  icon="check", option_1="Thanks")
    
def show_error():
    # Show some error message
    CTkMessagebox(title="Error", message="Something went wrong!!!", icon="cancel")
    
def show_warning():
    # Show some retry/cancel warnings
    msg = CTkMessagebox(title="Warning Message!", message="Unable to connect!",
                  icon="warning", option_1="Cancel", option_2="Retry")
    
    if msg.get()=="Retry":
        show_warning()
        
def ask_question():
    # get yes/no answers
    msg = CTkMessagebox(title="Exit?", message="Do you want to close the program?",
                        icon="question", option_1="Cancel", option_2="No", option_3="Yes")
    response = msg.get()
    
    if response=="Yes":
        app.destroy()       
    else:
        print("Click 'Yes' to exit!")
              
app = customtkinter.CTk()
app.rowconfigure((0,1,2,3,4,5), weight=1)
app.columnconfigure(0, weight=1)
app.minsize(200,250)

customtkinter.CTkLabel(app, text="CTk Messagebox Examples").grid(padx=20)
customtkinter.CTkButton(app, text="Check CTkMessagebox", command=show_checkmark).grid(padx=20, pady=10, sticky="news")
customtkinter.CTkButton(app, text="Show Info", command=show_info).grid(padx=20, pady=10, sticky="news")
customtkinter.CTkButton(app, text="Show Error", command=show_error).grid(padx=20, pady=10, sticky="news")
customtkinter.CTkButton(app, text="Show Warning", command=show_warning).grid(padx=20, pady=10, sticky="news")
customtkinter.CTkButton(app, text="Ask Question", command=ask_question).grid(padx=20, pady=(10,20), sticky="news")

app.mainloop()

<br> <h2 align="center"> OPTIONS </h2> <div align="center">

| Parameters | Description | | -------- | ----------- | | master | set parent window (optional), the box will spawn at center of the parent window | | width | width of the window in px (optional) | | height | height of the window in px (optional) | | fg_color | forground color of the messagebox [middle portion] | | bg_color | background color of the messagebox | | title | title of the messagebox | | message | main message of the messagebox which will be shown at the center | | option_1 | the text on the first button [Default is 'OK'] | | option_2 | the text on the second button | | option_3 | the text on the last button | | options | directly pass a list containing the options in order | | button_color | color of the buttons | | text_color | color of the message-text | | title_color | color of the title-text | | button_text_color | color of the button-text | | button_hover_color | hover color of the buttons | | button_width | width of the buttons in px | | button_height | height of the buttons in px | | border_width | width of the border around the main frame [Default is 1] | | border_color | color of the frame border | | cancel_button | define the cancel button type: circle, cross or None | | cancel_button_color | color of the close button, set it to 'transparent' if you want to hide it | | icon | icon that will be shown in the messagebox [Default is the 'info' icon] | | icon_size | define the size of the icon image manually (tuple) | | corner_radius | corner roundness of the messagebox window [not applicable in linux] | | font | font of the messagebox text (tuple) | | header | add the original header back if you don't like overrideredirect (bool) | | topmost | disable the topmost window outside the app (bool) | | sound | enable the system bell sound when the window popups (bool) | | justify | position the buttons to center/right/left | | wraplength | change the text wrapping length | | option_focus | select an option by default when Enter key is pressed | | fade_in_duration | enable a fade-in and fade-out animation (int, default is 0) |

</div> <br> <h2 align="center"> Icons </h2> <div align="center">

Default icons:

icons

(These icons are created using Paint.NET, free to use!)

For custom images, just use icon="image_path.png"

That's all, hope it will help in UI development!

</div>
View on GitHub
GitHub Stars380
CategoryDevelopment
Updated2d ago
Forks20

Languages

Python

Security Score

100/100

Audited on Mar 30, 2026

No findings