Saturday, October 24, 2020

Rolling text animation with Python

Logo.gif

from tkinter import *
from random import randint
from time import sleep

win = Tk()
win.geometry("750x500+0+0")

S00, S01, S02, S03, S04 = StringVar(), StringVar(), StringVar(), StringVar(), StringVar()
S05, S06, S07, S08, S09 = StringVar(), StringVar(), StringVar(), StringVar(), StringVar()
S10, S11, S12, S13, S14 = StringVar(), StringVar(), StringVar(), StringVar(), StringVar()
X, Y = 200, 13

lbl = Label(win, text = "", bg="black", fg="yellow", width=18, font=("Helvetica", 36, "bold"));    lbl.place(x=X-22, y=Y)
lbl00 = Label(win, textvariable = S00, bg="black", fg="#FFFF00", font=("Helvetica", 36, "bold"));  lbl00.place(x=X, y=Y)
lbl01 = Label(win, textvariable = S01, bg="black", fg="yellow", font=("Helvetica", 36, "bold"));   lbl01.place(x=X+40, y=Y)
lbl02 = Label(win, textvariable = S02, bg="black", fg="yellow", font=("Helvetica", 36, "bold"));   lbl02.place(x=X+80, y=Y)
lbl03 = Label(win, textvariable = S03, bg="black", fg="yellow", font=("Helvetica", 36, "bold"));   lbl03.place(x=X+125, y=Y)

lbl04 = Label(win, textvariable = S04, bg="black", fg="yellow", font=("Helvetica", 36, "bold"));   lbl04.place(x=X+160, y=Y)
lbl05 = Label(win, textvariable = S05, bg="black", fg="yellow", font=("Helvetica", 36, "bold"));   lbl05.place(x=X+200, y=Y)
lbl06 = Label(win, textvariable = S06, bg="black", fg="yellow", font=("Helvetica", 36, "bold"));   lbl06.place(x=X+240, y=Y)
lbl07 = Label(win, textvariable = S07, bg="black", fg="yellow", font=("Helvetica", 36, "bold"));   lbl07.place(x=X+280, y=Y)

lbl08 = Label(win, textvariable = S08, bg="black", fg="yellow", font=("Helvetica", 36, "bold"));   lbl08.place(x=X+358, y=Y)
lbl09 = Label(win, textvariable = S09, bg="black", fg="yellow", font=("Helvetica", 36, "bold"));   lbl09.place(x=X+398, y=Y)
lbl10 = Label(win, textvariable = S10, bg="black", fg="yellow", font=("Helvetica", 36, "bold"));   lbl10.place(x=X+438, y=Y)
lbl11 = Label(win, textvariable = S11, bg="black", fg="yellow", font=("Helvetica", 36, "bold"));   lbl11.place(x=X+460, y=Y)

pic1 = PhotoImage(file="Logo.gif")
lblLogo = Label(win, image=pic1);  lblLogo.place(x=50, y=0)

def roll(S, ch, lbl):
  for i in range(16):
    S.set(chr(65 + randint(0, 25)))
    sleep(.01)
    win.update_idletasks()
    S.set("   ")
    cols = ["#000000", "#111100", "#222200", "#333300",
            "#444400", "#555500", "#666600", "#777700",
            "#888800", "#999900", "#AAAA00", "#BBBB00",
            "#CCCC00", "#DDDD00", "#EEEE00", "#FFFF00"
           ]
    lbl.config(fg=cols[i])
  S.set(ch)

roll(S00, 'C ', lbl00);  roll(S01, 'O ', lbl01)
roll(S02, 'M ', lbl02);  roll(S03, 'P ', lbl03)
roll(S04, 'U ', lbl04);  roll(S05, 'T ', lbl05)
roll(S06, 'E ', lbl06);  roll(S07, 'R ', lbl07)
roll(S08, 'Q ', lbl08);  roll(S09, 'U ', lbl09)
roll(S10, 'I ', lbl10);  roll(S11, 'Z ', lbl11)

win.mainloop()

No comments:

Post a Comment