https://github.com/akascape/ctkmessagebox
A fully customizable messagebox for customtkinter! (extension/add-on)
https://github.com/akascape/ctkmessagebox
customtkinter customtkinter-messagebox messagebox messageboxes popup-window python-ui python3 tkinter tkinter-gui tkinter-messagebox
Last synced: 10 months ago
JSON representation
A fully customizable messagebox for customtkinter! (extension/add-on)
- Host: GitHub
- URL: https://github.com/akascape/ctkmessagebox
- Owner: Akascape
- License: cc0-1.0
- Created: 2023-02-25T11:14:41.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-06-29T07:56:16.000Z (over 1 year ago)
- Last Synced: 2025-04-03T17:11:39.198Z (10 months ago)
- Topics: customtkinter, customtkinter-messagebox, messagebox, messageboxes, popup-window, python-ui, python3, tkinter, tkinter-gui, tkinter-messagebox
- Language: Python
- Homepage:
- Size: 213 KB
- Stars: 354
- Watchers: 5
- Forks: 18
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
CTkMessagebox
A modern and fully customizable messagebox for CustomTkinter, A must-have extension pack!


[](https://pypi.org/project/CTkMessagebox)
[](https://pepy.tech/project/ctkmessagebox)


Features
- 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
Installation
```
pip install CTkMessagebox
```
[
](https://github.com/Akascape/CTkMessagebox/archive/refs/heads/main.zip)
How it looks?

Example
```python
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()
```
OPTIONS
| 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) |
Icons
**Default 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!