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

当StringVar更改时,在悬停之前不会更新OptionMenu小部件

答案:

在Python的Tkinter库中,OptionMenu小部件是一个下拉菜单,它可以让用户从预定义的选项中选择一个值。而StringVar是Tkinter库中的一种变量类型,它用于存储字符串类型的值,并且可以与其他小部件进行绑定,实现值的双向绑定。

根据题目要求,下面是对这个问题的完善且全面的答案:

当StringVar变量用作OptionMenu小部件的值时,如果StringVar的值发生更改,OptionMenu小部件不会立即更新显示新值,而是在鼠标悬停在OptionMenu上时更新。这是因为Tkinter库中的小部件更新是事件驱动的,默认情况下,只有当有事件触发时,小部件才会重新绘制。

为了实现当StringVar更改时立即更新OptionMenu小部件的值,可以使用Tkinter库中的trace方法来监听StringVar的值变化,并在变化时手动更新OptionMenu小部件。

以下是实现的示例代码:

代码语言:txt
复制
import tkinter as tk

def update_optionmenu(*args):
    optionmenu['menu'].delete(0, 'end')
    for value in stringvar.get_options():
        optionmenu['menu'].add_command(label=value, command=tk._setit(stringvar, value))

root = tk.Tk()

stringvar = tk.StringVar()
stringvar.set('Option 1')
stringvar.get_options = lambda: ['Option 1', 'Option 2', 'Option 3']

optionmenu = tk.OptionMenu(root, stringvar, *stringvar.get_options())
optionmenu.pack()

stringvar.trace('w', update_optionmenu)

root.mainloop()

在上面的代码中,我们定义了一个带有选项的StringVar变量,并使用lambda函数来定义选项的列表。然后创建了一个OptionMenu小部件,并将StringVar与之绑定。在StringVar发生变化时,通过trace方法调用update_optionmenu函数来更新OptionMenu小部件的选项。

需要注意的是,腾讯云没有直接对应的产品和产品介绍链接地址与此问题相关。

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

相关·内容

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

CodenameCYS/python_gui_tutorial ---- BTW: 后来发现tkinter库事实上是一个非常简单的可视化界面写作仓库,实现简单但是功能相对单一,对于真正复杂的行为设计支持不充分,事实上大型的可视化界面开发中基本不会使用这个仓库...窗口类包含的主要方法包括: mainloop():启动窗口,并循环更新状态; quit():关闭窗口; Tk类事实上还包含有大量其他的方法,但是文档中没有很好的说明,而且似乎也并不常用,有兴趣的读者可以直接阅读源码进行学习...,事实上都是绘制(0,0)坐标上,因为起始点就是当前坐标; 有中间间隔时,比如(0,0)到(2,2),grid不会自动去计算间隔,而是非常粗暴地将其视作(1,1)进行处理,即按照坐标往后平移一个位置...Optionmenu组件 Optionmenu组件和Listbox组件功能上事实上差不多,但是前者是平铺式的将所有可选项全部显示出来,而Optionmenu则是通过一个折叠窗口将选项进行了隐藏。...同样的,我们给出Optionmenu的典型使用方法如下: var = tk.StringVar() optionList = ["A", "B", "C", "D"] om = tk.OptionMenu

4.6K30

肝了一夜,我用Python做了一个垃圾分类器!

预估2020年底,先行先试的46个重点城市! 前段时间,编所在的城市蓝鲸也开始了垃圾分类,每次去扔垃圾都在要提前科普查询一下:你这个是什么垃圾!!...为了获取垃圾分类数据集,编经过资料的查询,码云中小编找到一个垃圾分类数据库,数据库中总共包含了可回收垃圾、有害垃圾、湿垃圾、干垃圾、大件垃圾五种类别,每种类别的垃圾数目如下表所示: 02 垃圾分类学习器设计...我们先建立了垃圾类的list,通过OptionMenu部件进行枚举类的显示; 为了实现对类别的实时更新,调用按键的回调函数garbage_process,对scrolledtext.ScrolledText...在上面的代码中,可以看到,获取所有的垃圾名字作为枚举类OptionMenu对象创建下拉选项,用户可以数据库中选择垃圾品种进行自我测试。...希望大家都加入到垃圾分类的队伍中来,保护环境从你我做起,让水清天蓝,贡献一份力量吧!

75620
  • steamvr插件怎么用_微信word插件加载失败

    如果之前您正在读取 0 到 1 的值,然后等待它达到某个点,即阈值,那么您可以使用布尔操作完成相同的操作,从而使您的最终用户容易进行自定义。...onConnectedChanged:设备连接或断开时,执行此动作。 onTrackingChanged:每当此设备的跟踪状态发生更改时执行。...传入 null 将使手悬停锁定时不会悬停在任何东西上。 此技术用于传送弧处于活动状态时使手不会悬停在物体上。...5.3.11 UIElement 将这个组件添加到现有的UI小部件中,手就可以与它进行交互了。 这将根据手部交互生成鼠标悬停和单击事件,并通过 Unity 事件系统将它们发送到现有 UI 小部件。...应用于预制件之前禁用双手预览是一种很好的做法,因为预制件中的骨架是凌乱、大且不必要的。   只启用一个姿势时,最容易编辑姿势,但要使此选项卡中的某些按钮起作用,您需要启用两只预览手。

    3.7K10

    Python中tkinter模块的常用参数总结

    单选框;Scale    滑块;允许通过滑块来设置一数字值Scrollbar 滚动条;配合使用canvas, entry, listbox, and text窗口部件的标准滚动条...(Tkinter中窗口部件类没有分级;所有的窗口部件树中都是兄弟。)...4、组件的放置和排版(pack,grid,place)pack组件设置位置属性参数: after:     将组件置于其他组件之后; before:    将组件置于其他组件之前...     标签中的图片;justify     多行文本的对齐方式;text        标签中的文本,可以使用'\n'表示换行textvariable     显示文本自动更新...;FocusIn       组件获得焦点时触发;FocusOut       组件失去焦点时触发;Property      窗体的属性被删除或改变时触发;

    83330

    Python 之 tkinter 学习笔记

    窗口部件简介 tkinter 同样有许多小部件,例如按钮,文本框,输入框等,将这些组件拼接,就可以得到一个比较完整的桌面程序。...获取并显示账号密码 学会了添加控件响应函数,那么就让我们之前例子的基础上添加一个小功能:当你输入账号密码之后,点击登录,弹出你输入的账号密码。...首先,我们需要知道的是有些控件可以通过传入特定参数直接和一个控件绑定,这种绑定是双向的: 如果该变量发生改变, 与该变量绑定的控件也会随之更新 下面的这段代码中,我们就创建了两个 StringVar 类型的变量...# 更新列表前恢复写 window_list.config(state='normal') # 删除原来的数据 window_list.delete(1.0, tk.END) for file_name...path.get() if file_dir: # 获得当前路径下的所有文件名 file_lists = os.listdir(file_dir) # 更新列表前恢复写

    7K20

    Flutter 中 stateless 和 stateful widget 的区别

    部件的状态 状态是构建期间同步读取小部件类的信息 - 也就是说,部件显示屏幕上并且如果信息在其生命周期内发生更改时可能会发生变化。...例如,当我们创建一个AppBar](,无状态小部件可以是不需要更改的脚手架或图标。 无状态小部件类仅在初始化时调用一次。即使有外力作用在它上面,它也不会更新。...每当StatelessScreen小部件初始化时,build就会调用该方法。之后,小部件将打印屏幕上。 但是如果我们希望它在有动作时更新,我们必须制作一个有状态的小部件。...有状态的小部件 UI 的某些部分必须在运行时动态更改时,使用有状态小部件。有状态的小部件可以应用程序运行时多次重绘自己。 当我们描述的 UI 部分动态变化时,有状态小部件很有用。...它将被渲染一次并且不会自行更新setState() 有一个内部并且可以输入数据更改时重新渲染setState() 静态小部件 动态小部件 除非发生外部事件,否则无法在运行时更新 可以在运行时根据用户操作或数据更改进行更新

    2.3K10

    记住,永远都不要在 Flutter 中使用全局变量

    但是,有些开发人员会使用全局变量,因为他们一个团队中,并且某些情况下不利于更改。 但是,无论应用程序的大小如何,需要维护代码时,全局变量都会带来挑战。...Provider 状态管理包 Provider 状态管理器包被广泛用于收集小部件状态数据并在状态更改时更新部件。 使用提供程序时,只有受影响的小部件会在数据发生突变时被更新。...这将节省你的时间,因为你将在运行时将缺陷添加到你的应用程序之前修复错误。 4. Redux Redux 是一个库,可帮助你有效地管理小部件的数据状态。...SetState 方法 之前,我们只介绍了管理状态的 Flutter 包和库。 当你的小部件更改数据值时,可以调用一个名为 setState 的方法。它将导致 UI 根据新状态发生变化。...你可以添加在状态更改时执行某些操作的代码。

    3.5K30

    vscode开发插件推荐第二节

    flutter开发VScode插件推荐 Image preview 这是一个非常酷的扩展,它在悬停和装订线时显示图像预览,您处理大量图像时可以派上用场。...这有助于我们避免图像路径或名称方面犯任何错误。如果您将鼠标悬停在 path 上,扩展名会提供指向项目结构及其维度中的文件的链接。...它通过消除与创建小部件相关的大部分样板代码来提高您的开发速度。可以通过分别键入快捷方式和来创建诸如StreamBuilder和 之类的小部件。...这只会添加最新版本,因此它也可以用于更新现有的 pub。 Bracket Pair Colorizer 2 我们经常迷失嵌套部件树和嵌套类的迷宫中,花费大量时间寻找括号对。...此扩展使通过颜色编码容易找到括号对。您可以自定义与括号和活动范围显示相关的颜色和许多其他功能。

    1.7K10

    从《西部世界》谈起,仿生机器人十二问 | CCF-GAIR 2018

    比如,苍蝇的一对翅膀共有 12 对大肌群和 18 对肌群,机器人设计上我们不可能也没有必要去模仿每一个驱动环节,所以研究如何产生升力、控制翅膀轨迹时,我们可以对主要肌群的影响因素进行研究,结合这些研究...昆虫和蜂鸟可以空间悬停、机动灵活地转弯。其他鸟类因为需要有前进速度,所以需要更大的飞行空间。...飞行器的重量是最需要考虑的因素,实现能悬停的扑翼飞行之所以存在很大挑战,就是因为需要产生足够的升力来提升自重以及克服负载的重量,在这上面加任何部件都需要考虑体积和重量,这也是设计任何附加控制机构的时候需要考虑的问题...答:飞行类仿生机器人体积、能悬停、具有机动性和灵活性,这些特征使其可以应用于狭小空间和室内,可以利用它们地震后的废墟、火灾现场、辐射区等特殊场景下进行搜救和侦查。...相对后者适用的高速和远距,前者适用于空间里对灵活性要求较高的场景。随着技术的进步,将来仿生机器人会应用到许多特定场合和传统的大型机器人、飞行器等到不了的空间。 11.

    70920

    干货推荐 | 掌握这几点,轻松玩转 Bokeh 可视化 (项目实战经验分享)

    这些是读者可以采取的不会改变所显示数据的动作。 这些被称为检查员(inspectors),因为它们允许读者详细地 “查看” 数据。...将鼠标悬停在不同的栏上时,会得到该栏的精确统计数据,显示该区间内的间隔和航班数。...前面介绍的被动交互也称为检查器(inspectors),因为它们允许用户详细地查阅图表中的信息,但不会更改显示的信息。 一个示例是当用户将鼠标悬停在数据点上时显示的提示信息,如下: ?...根据用户选择更新绘图 整理数据 制作绘图之前,需要设计将要显示的数据。...每次,我们创建窗口小部件,编写更新函数以更改绘图上显示的数据,并使用事件处理程序将更新功能链接到窗口小部件。 我们甚至可以通过重写函数来从多个元素中使用相同的更新函数,以从小部件中提取需要的值。

    2.3K40

    InstantClick,让你的网站快到起飞,PJAX技术

    阅读下面的文章以便熟练的使用instantclick。...但是不管怎样,每个页面改变时,不会重新加载脚本和样式表,这样会使你的页面加载速度提升一倍!...同一站点上的3G请求的延迟时间通常需要大约200ms。 如何选择? 如果您的网站可以处理额外的负载,选择 鼠标悬停时预加载方式。 如果你的网站不能,选择鼠标点击的瞬间预加载方式。...如果你想确定你的服务器是否可以,先选择鼠标点击的瞬间预加载方式,你的服务器几乎不会有额外的压力。然后使用鼠标悬停延迟100毫秒预加载。然后50毫秒延迟(或减少更小的减少,如果你有耐心)。...; } var timingStart = performance && performance.now(); 检测到任何更改时

    3.7K20

    干货:可视化项目实战经验分享,轻松玩转Bokeh(建议收藏)

    这些是读者可以采取的不会改变所显示数据的动作。这些被称为检查员(inspectors),因为它们允许读者详细地 “查看” 数据。...将鼠标悬停在不同的栏上时,会得到该栏的精确统计数据,显示该区间内的间隔和航班数。...前面介绍的被动交互也称为检查器(inspectors),因为它们允许用户详细地查阅图表中的信息,但不会更改显示的信息。一个示例是当用户将鼠标悬停在数据点上时显示的提示信息,如下: ?...这个直方图非常混乱,因为有 16 家航空公司同一图表上绘制! 如果想比较航空公司,由于信息重叠,这几乎是不可能的。 幸运的是,我们可以添加小部件(widgets)以使绘图清晰并实现快速比较。...每次,我们创建窗口小部件,编写更新函数以更改绘图上显示的数据,并使用事件处理程序将更新功能链接到窗口小部件。 我们甚至可以通过重写函数来从多个元素中使用相同的更新函数,以从小部件中提取需要的值。

    2.8K20

    安卓开发_浅谈ContextMenu(上下文菜单)

    长下文菜单,即长按view显示一个菜单栏 与OptionMenu的区别 OptionMenu对应的是activity,一个activity只能拥有一个选项菜单 ContextMenu对应的是View,每个... 可以看到两个菜单项,看下菜单项的各个属性: 1、 android:id= 是菜单项id 2、android:orderInCategory= 是菜单项优先级,值越大,优先级越多,菜单项过多时...,可隐藏在折叠菜单中 3、android:showAsAction=   原来是特定版本用到的,当你的应用程序目标设为蜂巢平台(即 Android 3.0)时,你可以利用Action Bar部件提供的全部功能...,将你的选项菜单项放在Action Bar的右上角,  对用户来说使用方便,控制该行为的主菜单项属性是android:showAsAction。 ...3.never:这个值菜单永远不会出现在ActionBar是。     4.withText:这个值使菜单和它的图标,菜单文本一起显示。

    1.5K60

    Flutter UI原理

    然后,框架比较新旧widget并有效地更新用户界面。 Widgets本身通常由许多的,单一用途的Widget组成,这些Widgets组合起来产生强大的效果。...Flutter沿着小部件树向下走,并通过部件上调用createElement()来创建第二个包含相应Element对象的树。...Widget的类型与以前相同时,Flutter不需要重新创建昂贵的RenderObject,只需更新其可变配置即可。...“重量级”RenderObjects(创建起来很昂贵)不会每次都重新创建而是尽可能重用。 框架中,Elements很好地“抽象出来”,因此您不必经常处理它们。...我们的示例中, SimpleApp与以前的类型相同,并且具有与相应的SimpleAppRender对象相同的配置,因此不会有任何更改。

    3.3K20

    Python3中tkinter模块使用方法详解

    Tkinter中窗口部件类没有分级;所有的窗口部件树中都是兄弟。) ...组件的放置和排版(pack,grid,place)  pack组件设置位置属性参数:     after:        将组件置于其他组件之后;     before:       将组件置于其他组件之前...justify            多行文本的对齐方式;     text             标签中的文本,可以使用'\n'表示换行     textvariable       显示文本自动更新...组件被销毁时触发;     Expose              组件从被遮挡状态中暴露出来时触发;     Unmap              组件由显示状态变为隐藏状态时触发;     Map...                  组件由隐藏状态变为显示状态时触发;     FocusIn              组件获得焦点时触发;     FocusOut            组件失去焦点时触发

    4.5K21

    组件&生命周期

    父组件导致你的组件重新渲染时,可能会发生这种情况。 React组件mounting期间不会调用此方法,只有一些组件的props可能被更新的时候才会调用。...默认行为是每次state更改时重新渲染组件,大多数情况下,我们应该默认改行为。 接收到新的props或state时,shouldComponentUpdate()渲染之前被调用。...返回false不会阻止子组件的state更改时,该子组件重新渲染。...componentWillUpdate() 接收新的props或state时,componentWillUpdate()组件渲染之前被立即调用。使用此函数作为更新发生之前执行准备的机会。...componentDidUpdate() 此函数更新后立即被调用。初始渲染不调用此方法。 组件已经更新时,使用此操作作为DOM操作的机会。

    1.9K10

    掌握这几点,轻松玩转 Bokeh 可视化 (项目实战经验分享)

    这些是读者可以采取的不会改变所显示数据的动作。 这些被称为检查员(inspectors),因为它们允许读者详细地 “查看” 数据。...将鼠标悬停在不同的栏上时,会得到该栏的精确统计数据,显示该区间内的间隔和航班数。...前面介绍的被动交互也称为检查器(inspectors),因为它们允许用户详细地查阅图表中的信息,但不会更改显示的信息。 一个示例是当用户将鼠标悬停在数据点上时显示的提示信息,如下: ?...根据用户选择更新绘图 整理数据 制作绘图之前,需要设计将要显示的数据。...每次,我们创建窗口小部件,编写更新函数以更改绘图上显示的数据,并使用事件处理程序将更新功能链接到窗口小部件。 我们甚至可以通过重写函数来从多个元素中使用相同的更新函数,以从小部件中提取需要的值。

    2.2K30

    为啥Flutter Hooks没有受到太多关注和青睐?

    不会是无名氏发明的吧? 其实 Hooks 最初是源于 React,但这里我并不会谈什么 React,因为我没用过它,以后也应该不会用的。...Memoized Hook 这种 Hook(记忆化 Hook)是部件的生命周期中缓存对象实例的一种简单方法。用它可以轻松页面上创建 BLoC、MobX 存储或通知程序对象。...const[] 表示未放弃(dispose)小部件之前,请勿调用 effect。你可以提供一组参数,其中一个参数更改时将调用 effect。下面来看看另一个关于动画的例子。...这是为了确保任意 key 被更改时都会重新创建 ticker provider。例如, tab 的数量变化时就会重新创建它。...在这里,我们将 tickerProvider 传递为第二个参数,以便在 ticker 更改时(也就是 length 或 initialIndex 更新时)重新创建控制器。这里依旧都是自动化的。

    1.1K20

    Tkinter教程(每天半小时,3天彻底掌握Tkinter)day2

    使用该 grid 函数进行布局的时,表格内的每个单元格都可以放置一个控件。,从而实现对界面的布局管理。...column=0, rowspan=3) .grid(row=6, column=0, columnspan=3) Tkinter常用控件和属性 我们知道,一个完整的 GUI 程序,其实是由有许多的控件...Menubutton 菜单按钮控件 用于显示菜单项 Message 信息控件 用于显示多行不可编辑的文本,与 Label控件类似,增加了自动分行的功能 messageBox 消息框控件 定义与用户交互的消息对话框 OptionMenu...() 对象来设置,而 text 为静态字符串对象 xscrollcommand 设置输入框内容滚动条,输入的内容大于输入框的宽度时使用户 上述表格中提及了 StringVar() 方法,和其同类的方法还有...index() 返回指定的索引值 select_clear() 取消选中状态 select_adujst() 确保输入框中选中的范围包含 index 参数所指定的字符,选中指定索引和光标所在位置之前的字符

    4K20
    领券