Skip to content

A fully customizable messagebox for customtkinter!

License

Notifications You must be signed in to change notification settings

ElectricCandlelight/CTkMessagebox

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 

Repository files navigation

CTkMessagebox

A modern and fully customizable messagebox for customtkinter

Features:

  • Customize all elements inside the messagebox
  • Add custom icons or images
  • Spawns at center of the screen
  • Add multiple buttons according to your wish
  • No ugly looking header or borders
  • Comes with 5 default icons
  • Draggable window

Installation

pip install CTkMessagebox

GitHub repo size

PyPI

How it looks?

Screenshot

Example

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
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_width width 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_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)

Icons

Default icons:

icons

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

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

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

About

A fully customizable messagebox for customtkinter!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%