首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过curselection() Tkinter更改背景颜色

通过curselection() Tkinter更改背景颜色
EN

Stack Overflow用户
提问于 2018-06-09 04:30:06
回答 1查看 551关注 0票数 0

我遇到了一个问题,试图通过在OptionMenu中选择背景颜色来更改它。即使我添加了一个else子句,颜色也不会改变。

代码语言:javascript
复制
root=Tk()
root.geometry("200x200")
variative=IntVar()        
list=[1,2,3,4]
variative.set('Select')
listbox=OptionMenu(root,variative,list[0],list[1],list[2],list[3])
def Background(event):
    l=listbox.curselection()
    if l==1:
        root.config(bg='red')
    elif l==2:
        root.config(bg='yellow')
    elif l==3:
        root.config(bg='gray')
    elif l==4:
        root.config(bg='green')    
listbox.bind('<<ListboxSelect>>',Background)
listbox.pack()
root.mainloop()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-09 04:54:10

OptionMenu不是Listbox,这就是<<ListboxSelect>>事件从不发生的原因。但是,您可以在创建OptionMenu时将命令选项传递给它。每次在菜单中选择一个选项时,都会调用此命令,所选的选项将在参数中传递。

下面是一个示例:

代码语言:javascript
复制
from tkinter import Tk, OptionMenu, IntVar
root = Tk()
variative = IntVar()        
option_list = [1,2,3,4]
variative.set('Select')

def background(sel):
    if sel == 1:
        root.config(bg='red')
    elif sel == 2:
        root.config(bg='yellow')
    elif sel == 3:
        root.config(bg='gray')
    elif sel == 4:
        root.config(bg='green')   

listbox = OptionMenu(root,variative, *option_list, command=background)
listbox.pack()
root.mainloop()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50767995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档