Skip to main content

A modern messagebox for customtkinter

Project description

CTkMessagebox

A modern and fully customizable messagebox for CustomTkinter, A must-have extension pack!

License Download PyPI Downloads Platform

3d


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

GitHub repo size


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
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
focus_option 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:

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!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ctkmessagebox-2.7.tar.gz (126.4 kB view details)

Uploaded Source

Built Distribution

CTkMessagebox-2.7-py3-none-any.whl (125.9 kB view details)

Uploaded Python 3

File details

Details for the file ctkmessagebox-2.7.tar.gz.

File metadata

  • Download URL: ctkmessagebox-2.7.tar.gz
  • Upload date:
  • Size: 126.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.0

File hashes

Hashes for ctkmessagebox-2.7.tar.gz
Algorithm Hash digest
SHA256 5ce7e76b797c8d5de5f29438d8c784e33c72fb6ff666c87eb8991815c46c59c5
MD5 fd4735f8361bacafead5314bf2dfda4e
BLAKE2b-256 1dc31e4235e586e3b846bc5c82719760041f815a26c7d8b8933402e08216e81c

See more details on using hashes here.

File details

Details for the file CTkMessagebox-2.7-py3-none-any.whl.

File metadata

  • Download URL: CTkMessagebox-2.7-py3-none-any.whl
  • Upload date:
  • Size: 125.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.0

File hashes

Hashes for CTkMessagebox-2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 68941ccab2251f2fd3ac3338a99bdd30d9f28fee4ef0070dfdd0420be1c34a5a
MD5 baf41a9e753aee7f990da3906360fc19
BLAKE2b-256 b9e0827193418fd1c0b2f7c64cb0fec255996e40da69e05b2454fd1375a64eff

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page