我想做一个彩虹按钮

2024-10-01 22:37:06 发布

您现在位置:Python中文网/ 问答频道 /正文

def RainbowButton():
    btn.config(bg=red)
    btn.config(bg=purple)
    btn.config(bg=yellow)
    btn.config(bg=orange)
    btn.config(bg=blue)
    btn.config(bg=lightblue)
    btn.config(bg=green)
    btn.config(bg=black)
def ButtonUpdate():
    RainbowButton()
    window.after(10, ButtonUpdate)
ButtonUpdate()

这是我想出的代码,但它不起作用。当我运行程序时,按钮是黑色的,没有颜色变化


Tags: configdefgreenblueredwindowlightbluebg
1条回答
网友
1楼 · 发布于 2024-10-01 22:37:06

诀窍是每次向按钮提供一种颜色,每次ButtonUpdate()函数运行一次。您可以使用迭代器来解决这个问题。当迭代器的项用完时,它会引发一个错误,我用try子句捕获了这个错误。我调整了after()函数的时间,以便更好地看到效果

import tkinter as tk

window = tk.Tk()

btn = tk.Button(window, text='Button')
btn.pack(padx=50, pady=30)

rainbow_colors = ['red','purple','yellow','orange','blue',
                  'lightblue','green','black']
color_iterator = iter(rainbow_colors)

def ButtonUpdate():
    try:
        color = next(color_iterator)
        btn.config(bg=color)
    except StopIteration:
        return
    window.after(500, ButtonUpdate)

ButtonUpdate()

window.mainloop()

相关问题 更多 >

    热门问题