首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果列表发生更改,Tkinter的OptionMenu回调将不起作用

Tkinter是Python的一个GUI库,用于创建图形用户界面。OptionMenu是Tkinter中的一个小部件,用于创建下拉菜单。

回答问题,如果列表发生更改,Tkinter的OptionMenu回调将不起作用。这是因为OptionMenu的回调函数是在创建OptionMenu时绑定的,如果列表发生更改,回调函数不会自动更新。

要解决这个问题,可以使用Tkinter的变量绑定机制。可以使用Tkinter中的StringVar、IntVar、DoubleVar等变量类型来绑定OptionMenu的值。当列表发生更改时,可以通过修改绑定的变量的值来触发回调函数。

以下是一个示例代码:

代码语言:python
代码运行次数:0
复制
import tkinter as tk

def option_changed(*args):
    selected_option = var.get()
    print("Selected option:", selected_option)

root = tk.Tk()

options = ["Option 1", "Option 2", "Option 3"]
var = tk.StringVar(root)
var.set(options[0])  # 设置默认选项

option_menu = tk.OptionMenu(root, var, *options, command=option_changed)
option_menu.pack()

root.mainloop()

在上面的示例中,我们创建了一个OptionMenu,并将其值绑定到了一个StringVar变量var上。在回调函数option_changed中,我们通过var.get()获取当前选中的选项。

这样,无论列表是否发生更改,只要修改了var的值,回调函数就会被触发,并且可以获取到最新的选项。

关于Tkinter的OptionMenu更多的信息,你可以参考腾讯云的文档:Tkinter OptionMenu

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

tkinter -- OptionMenu

显示文本自动断行,上下行分别使用了左对齐,右对齐和居中对齐 OptionMenu 创建需要两个必要参数,与当前值绑定变量,通常为一 StringVar 类型;另一个是提供可选内容列表,由 OptionMenu...变参数指定 设置 OptionMenu 显示值 当 OptionMenu 与变量绑定后,直接使用变量赋值方法即可改变当前值 代码: import tkinter as tk root = tk.Tk...运行程序,OptionMenu 默认值为"python",打印出数值也为"python" 如果设置值不包含在当前列表中,会是什么结果?...程序依旧是默认值改变为 Tkinter,打印结果也变为 Tkinter,但 Tkinter 不会添加到OptionMenu 列表中,也就是说,当选择其它选项时,Tkinter 值会丢失 打印 OptionMenu...每次点击 OptionMenu 程序打印出上次选中项值 使用 list 作为 OptionMenu 选项 代码: import tkinter as tk root = tk.Tk() v =

1.8K40

Python tkinter快速可视化开发GUI界面指南:详细教程(附带工具)

为了代码简洁,窗体退出按钮可以设置Cancel属性为True,然后程序自动生成 对应Tkinterdestroy,这样就不需要再实现一个函数。...ComboBox 组合框在Tkinter中没有对应控件,比较类似的只有OptionMenu,类似ComboBox Style=2 (Dropdown List)时表现,一个下拉列表,只能在列表中选择一个值...启动Visual Tkinter后,先按“刷新窗体列表”按钮,列出当前工程所有窗体和控件列表。 逐个确认各控件输出属性,在要输出选项前打钩,如果必要,可以在属性列表中双击修改属性值。...因为对于实现 简单程序来说,我偏爱单文件,所以我将UI类和逻辑代码类都放在同一个 文件中,在修改界面后,你可以直接覆盖对应Application_ui类即可实现 界面的变更,不过如果增加了新事件函数...GUI布局和设计,可以在VB界面上设置 控件一些属性,最终自动生成必要代码(包括函数框架),代码 生成后仅需要在对应函数中增加相应逻辑功能代码即可。

8.3K51
  • python笔记:可视化界面写作尝试

    如果是一个常量,那么直接使用text进行赋值即可,如果是一个变量,则需要通过一个StringVar类进行间接赋值。...当点击行为发生时,就会触发行为函数fn,需要注意是,他行为发生方式为下沿触发,即当点击被释放时,触发行为函数。...Optionmenu组件 Optionmenu组件和Listbox组件在功能上事实上差不多,但是前者是平铺式将所有可选项全部显示出来,而Optionmenu则是通过一个折叠窗口将选项进行了隐藏。...同样,我们给出Optionmenu典型使用方法如下: var = tk.StringVar() optionList = ["A", "B", "C", "D"] om = tk.OptionMenu...消息窗口组件 1. tk.messagebox 如果想要通过一个额外弹出框来进行消息提醒的话,tkinter提供组件支持为tk.messagebox,他是一系列窗口函数集合。

    4.6K30

    太实用了!自己动手写软件——GUI编程

    但是如果提供一个软件界面,将不协议作为选择项,不同协议需要不同参数,这样一个相对方便密码破解软件是不是就好了呢。...显示一个数值刻度,为输出限定范围数字区间 Scrollbar 滚动条控件,当内容超过可视化区域时使用,如列表框。....显示Button文字为“QUIT”,绑定了一个函数就是window.quit 第九行就是将这个button控件采用pack方法放置,pack会将控件自动放置在合适位置 最后一行运行一个主函数...Button内容是一致,就是Label控件调用Label函数,它没有函数,所以说它只是相当于一个信息提供框。...Menu控件,并将控件放置在window上 9-10行:添加菜单内容和函数 11行:将menu控件配置生效在window顶层框架上 13行:进入主事件循环 最终实现效果是这样 ?

    4.2K10

    python tkinter 设计指南

    Listbox 列表框控件 以列表形式显示文本 Menu 菜单控件 菜单组件(下拉菜单和弹出菜单) Menubutton 菜单按钮控件 用于显示菜单项 Message 信息控件 用于显示多行不可编辑文本...1 window.protocol("协议名",函数) 启用协议处理机制,常用协议有 WN_DELETE_WINDOW,当用户点击关闭窗口时,窗口不会关闭,而是触发回函数。...当鼠标放在按钮上时候,按钮前景色 bd 按钮边框大小,默认为 2 个像素 bg 按钮背景色 command 用来执行按钮关联函数。...='*') e1.grid(row=0, column=1, padx=10, pady=5) e2.grid(row=1, column=1, padx=10, pady=5) # 编写一个简单函数...gif") tk.Label(root, image=photo).grid(row=0, column=2, rowspan=2, padx='4px', pady='5px') # 编写一个简单函数

    6.8K30

    tkinter -- CheckButton

    Checkbutton 又称为多选按钮 可以表示两种状态:On 和 Off,可以设置函数,每当点击此按钮时函数被调用 一个简单Checkbutton例子: 示例: import tkinter...设置Checkbutton函数 不管 Checkbutton 状态如何,此函数都会被调用 示例: import tkinter as tk def calltext():     print...通过函数改变 Checkbutton 显示文本 text 值 代码: import tkinter as tk def calltext():     v.set('check py3study...Checkbutton 值不仅仅是1或0,可以是其他类型数值,可以通过 onvalue 和offvalue 属性设置 Checkbutton 状态值,如下代码将 On 设置为'python',Off...值设置为'Tkinter',程序打印值将不再是0或1,而是'Tkinter’或‘python’ 示例: import tkinter as tk def calltext():     print(

    53320

    tkinter -- Scale

    使用回函数打印当前值 代码: import tkinter as tk root = tk.Tk() def printscale(text):     print('text = {}'.format...horizontal',  # 设置水平方向                     variable=v,  # 绑定变量                     command=printscale  # 设置函数...这个函数有一个参数,这个值是当前 Scale 值,每移动一个步距就会调用一次这个函数 控制显示位数,可以理解为:Scale 值为一整形,在输出显示时,它将会被转化为一字符串,如1.2转化为1.2...  # 设置水平方向          variable=v,  # 绑定变量          label='choice',  # 设置标签值          command=text  # 设置函数...slider 位置位于了中间,sl.set(50)起作用了,打印值为50

    1.3K40

    软件测试|超好用超简单Python GUI库——tkinter(二)

    ,否则返回值为1window.protocol("协议名",函数)启用协议处理机制,常用协议有 WN_DELETE_WINDOW,当用户点击关闭窗口时,窗口不会关闭,而是触发回函数。...')# 定义函数,当用户点击窗口x退出时,执行用户自定义函数def QueryWindow(): # 显示一个警告信息,点击确后,销毁窗口 if messagebox.showwarning...,比如 Button 控件command参数也可以执行函数,如下所示:import tkinter as tk# 定义窗口window = tk.Tk()window.title('拜仁慕尼黑')...window.geometry('300x300')# 定义函数def callback(): print("执行函数","欢迎图赫尔执教拜仁!")...:图片点击执行,输出如下:执行函数 欢迎图赫尔执教拜仁!

    2.6K30

    Python打包GUI界面组件汇总,Tkinter(TK)实例代码

    turn_property(event): #自定义函数 trun_proerty event.widget["activeforeground"]="red" #鼠标左键按下时,标题显示红色...callback(): #定义菜单鼠标单击事件函数 root.title("OK") #调用成功,在窗体标题上显示 OK filemenu=Menu(m1) #在m1菜单实例上建立新子菜单实例...lb_show1['yscrollcommand']=s_show.set #把滚动条对象赋给对象列表框属性 lb_show1.pack(side="right") #把滚动条列表框定位(9)右边...============================================= Message及Button 组件 def showMessage(event): #自定义按钮鼠标事件函数...) b_show=Button(master,text="确认",fg="black") #创建按钮实例 b_show.bind("",showMessage) #按钮对象绑定鼠标事件

    6.8K21

    使用python tkinter实现一个简单计算器

    之前写过一系列tkinter库控件使用方法以及tkinter三种布局方法。...如果做一些简单界面,使用tkinter还是很方便,毕竟是python自带库。 今天将会做下面这样一个计算器,可以实现基本加减程序运算,整体代码逻辑比较简单,主要是一个函数理解。...3.重构布局代码 方法都定义好了,但是按钮都是循环实现如果直接绑定函数肯定不行,因为只能绑定一个,根据上面的功能,按钮要分为4类。...所以这里在循环显示按钮时候进行分类,为之后绑定不同方法做准备,具体更改完代码如下。 4.按钮函数绑定 最后给不同类型按钮绑定上对应方法即可。...等于,清空,退格都比较好理解,直接绑定方法,而功能1数值和运算符号相对复杂一定,因为需要传递参数,但是一般写法是无法传递参数,所以这里通过匿名函数构建了一个新函数,把之前函数作为匿名函数表达式

    4.7K10

    python coding ......

    事件和绑定正如前提到,Tkinter应用程序大部分事件都在事件循环中(通过mainloop方法进入事件循环)事件来自于多个来源,比如用户键盘输入和鼠标操作,和windowmanager重绘事件(...Tkinter提供强大机制让您自己处理事件,每个组件你都可以为各种事件绑定python函数和方法widget.bind(event,handler)如果组件中发生了与event描述匹配事,将调用handler...事件绑定函数bind: 语法:窗体对象.bind(事件类型,函数) 所谓函数”,就是这个函数我们不用去调用它,当相应事件发生时候,它会自动取调用。.../usr/bin/python from tkinter import * myWindow = Tk() myWindow.title("pythoncoder1024") # 点击鼠标左键,输出点击位置坐标...4.Tkinter包名因Python版本不同存在差异,有两种:Tkintertkinter,读者若发现程序不能运行,可以尝试切换包名

    77840

    【Python100天学习笔记】Day10 图形用户界面和游戏开发

    ) # 创建按钮对象 指定添加到哪个容器中 通过command参数绑定事件函数 button1 = tkinter.Button(panel, text='修改', command=...,因为事件会持续发生,所以需要这样一个循环一直运行着等待下一个事件发生。...,就是将不连续图片连续播放,只要每秒钟达到了一定帧数,那么就可以做出比较流畅动画效果。...如果希望获得更好用户体验,我们还可以在游戏中加入背景音乐以及在球与球发生碰撞时播放音效,利用pygamemixer和music模块,我们可以很容易做到这一点,大家可以自行了解这方面的知识。...如果想开发3D游戏,pygame就显得力不从心了,对3D游戏开发如果有兴趣读者不妨看看Panda3D。

    2.5K20

    tkinter -- button1

    Button 功能触发事件 一个简单button应用 示例: import tkinter as tk # 定义button函数 def py3study():     print('www.py3study.com...测试 Button relief 属性 Tkinter Relief styles: 构件浮雕式是指某些模拟3-D周围部件外影响 下面是可能提供救济属性可以使用常数列表 FLAT    ...控件焦点问题: 创建三个Button,各自对应函数;将第二个Button设置焦点,程序运行是按“Enter”判断程序打印结果 bind方法,它建立事件与函数(相应函数)之间关系,每当产生事件后,程序便自动调用 cb2,与 cb1,cb3不同是,它本身还带有一个参数----event,这个参数传递响应事件信息 代码: import tkinter as tk def cb1()... = tk.Button(root, text='button1', command=cb1) b2 = tk.Button(root, text='button2') # bind方法,它建立事件与函数

    81050

    tkinter -- Listbox

    Listbox 为列表框控件,它可以包含一个或多个文本项(text item),可以设置为单选或多选 创建一个 Listbox,向其中添加三个 item 示例: import tkinter as tk...删除 Listbox 中项,使用 delete,这个函数也有两个参数,第一个为开始索引值;第二个为结束索引值,如果不指定则只删除第一个索引项 示例: import tkinter as tk root...selection_set 函数有两个参数第一个为开始索引;第二个为结束索引,如果不指定则只选中第一个参数指定索引项 示例: import tkinter as tk root = tk.Tk(...) lb = tk.Listbox(root, listvariable=v) for i in range(10):     lb.insert(tk.END, str(i*100)) # 打印当前列表项值...Listbox 与事件绑定 它不支持 command 属性来设置函数了,使用 bind 来指定函数,打印当前选中值 示例: import tkinter as tk root = tk.Tk

    2.1K30

    Python3界面开发常用.md

    ;为用户提供了简单 GUI 交互接口,不需要程序员知道任何有关 tkinter,框架,部件,或 lambda 任何细节。...相反所有的 GUI 交互都是通过简地函数调用就可以实现,EasyGUI 为用户提供了简单 GUI 交互接口,不需要程序员知道任何有关 tkinter,框架,部件,或 lambda 任何细节。...因此当两者同时运行时候,有可能会发生冲突,且带来不可预测结果。因此如果你发现你 EasyGUI 程序有这样问题,请尝试在 IDLE 外去运行你程序。...'''选择/多选框''' #按钮组件方便提供用户一个简单按钮选项,但如果有很多选项,或者选项内容特别长的话,更好策略是为它们提供一个可选择列表 choicebox(msg='Pick an item...#关于 filetypes 参数设置方法: 可以是包含文件掩码字符串列表,例如:filetypes = ["*.txt"] 可以是字符串列表列表最后一项字符串是文件类型描述,例如:filetypes

    1.7K20
    领券