【发布时间】:2014-04-10 04:08:54
【问题描述】:
我想让不太受欢迎的菜单项从白色逐渐淡入黑色。有没有办法在菜单仍然打开时更新颜色?我已经尝试过 postcommand 和线程:
def update():
def color(c):
animal_menu.config(fg=c)
root.update()
print c
def adapt():
color('white')
root.after(100, color('#6E6E6E'))
root.after(100, color('black'))
## adapt() ##attempt no.1
## thread.start_new_thread(adapt, ()) ##attempt no.2
root = Tk()
menubutton = Menubutton(root, text="Animals")
animal_menu = Menu(menubutton, tearoff=0, postcommand=update)
animal_menu.add_command(label="Lion", command=print_time)
animal_menu.add_command(label="Tiger", command=print_time)
animal_menu.add_command(label="Bear", command=print_time)
menubutton.menu = animal_menu
menubutton["menu"] = menubutton.menu
menubutton.pack()
root.config()
root.mainloop()
到目前为止,第一次尝试在菜单出现之前完全运行(这很有意义,因为在发布菜单之前调用了 postcommand),第二次尝试仅在菜单未打开时运行(我不明白)由印刷声明证明。
谁能告诉我如何正确地动态改变颜色以在菜单打开时让项目淡入?
【问题讨论】:
标签: python user-interface tkinter menu tkinter-menu