DarthOpto
DarthOpto

Reputation: 1652

Changing part of a message's color in tkinter messagebox

I have a TKinter messagebox like the one below. I would like to change part of the message to a different color. For example in the messagebox below I would like the language to be Blue. Is this possible?

enter image description here

Upvotes: 3

Views: 9088

Answers (1)

Parviz Karimli
Parviz Karimli

Reputation: 1287

It's not possible to change such options of Tkinter Standard Dialogs. You need to create your own dialog. You'll also need to separate the text parts. I've tried to make something similar in the image that the OP has posted above:

from tkinter import *
root = Tk()

def choosefunc(option):
    if option == "cancel":
        print("Cancel choosen")
    else:
        print("OK choosen")

def popupfunc():

    tl = Toplevel(root)
    tl.title("Languages")

    frame = Frame(tl)
    frame.grid()

    canvas = Canvas(frame, width=100, height=130)
    canvas.grid(row=1, column=0)
    imgvar = PhotoImage(file="pyrocket.png")
    canvas.create_image(50,70, image=imgvar)
    canvas.image = imgvar

    msgbody1 = Label(frame, text="The", font=("Times New Roman", 20, "bold"))
    msgbody1.grid(row=1, column=1, sticky=N)
    lang = Label(frame, text="language(s)", font=("Times New Roman", 20, "bold"), fg='blue')
    lang.grid(row=1, column=2, sticky=N)
    msgbody2 = Label(frame, text="of this country is: Arabic", font=("Times New Roman", 20, "bold"))
    msgbody2.grid(row=1, column=3, sticky=N)

    cancelbttn = Button(frame, text="Cancel", command=lambda: choosefunc("cancel"), width=10)
    cancelbttn.grid(row=2, column=3)

    okbttn = Button(frame, text="OK", command=lambda: choosefunc("ok"), width=10)
    okbttn.grid(row=2, column=4)

label = Label(root, text="Click to proceed:")
label.grid()

button = Button(root, text="Click", command=popupfunc)
button.grid()

(Image URL: https://i.sstatic.net/V0Nz1.jpg)

Upvotes: 2

Related Questions