How to make a flashing text box in tkinter?

11,717

Create a change_color callback that alternates the text box's color, and uses after to call itself a second in the future.

Sample implementation:

from tkinter import *

def change_color():
    current_color = box.cget("background")
    next_color = "green" if current_color == "red" else "red"
    box.config(background=next_color)
    root.after(1000, change_color)

root = Tk()
box = Text(root, background="green")
box.pack()
change_color()
root.mainloop()
Share:
11,717
James Turner
Author by

James Turner

Updated on June 04, 2022

Comments

  • James Turner
    James Turner almost 2 years

    So my computing class are making a xmas card in python, and for one of the bits there is going to be a text box with a message, but how do I make the background alternate from green and red ?

    If someone would be able to help that would be amazing :)

    from tkinter import *
    root = Tk()
    root.title("Xmas Message")
    
    #command for the button
    def test_com():
        #removing the button
        act_btn.grid_remove() 
    
    #adding the textbox for the message
    msg_box = Text(root, height = 1, width = 30)
    msg_box.grid(row=0, column=0)
    
    #adding the message
    msg_box.insert(END, "Happy Xmas")
    
    #changing the background to green
    msg_box.config(background="green")
    
    
    #changing the background to red
    msg_box.config(background="red")
    
    root.after(250, test_com)
    
    
    #button for activating the command
    act_btn = Button(root, text = "1", command = test_com)
    act_btn.grid(row=0, column=0)
    
    
    
    
    
    
    root.mainloop()