单击时选项菜单不会显示第一个选项(Tkinter)

2023-12-27

我添加了一个OptionMenu小部件到我的代码,并分配一个列表作为它的选项。事情是这样的:

z = StringVar()   
z.set(userList[0])    
usersOption = OptionMenu(frame1, z, *userList)#, command=changeUser)
usersOption.pack(side=RIGHT, padx=3)

现在,我认为它会显示该列表中的所有选项。就这样:

Option 1 \/ <-- the box with the selected option
Option 1 }\__the options that show on click
Option 2 }/

但它实际上只显示第二个选项,当我选择它时,基本上没有回头路,如果我再次单击该框,它只会显示选项 2,即使使用向上和向下键,我也无法更改它。我尝试寻找解决方案,但一无所获,所以我开始认为这是小部件的默认操作方式,但在我阅读的文档中没有发现任何内容可以告诉我如何解决它。
PS:我使用的是Python 3.3


我遇到了同样的问题,这让我发疯,所以我查看了source https://github.com/python-git/python/blob/master/Lib/lib-tk/Tkinter.py?source=cc#L3183。我认为问题在于第三个构造函数参数是默认值。如果在 *userList 之前没有指定它,看起来它会将第一项作为默认值。真正的修复方法是这样的:

z = StringVar()   
z.set(userList[0])    
usersOption = OptionMenu(frame1, z, userList[0] ,*userList)#, command=changeUser)
usersOption.pack(side=RIGHT, padx=3)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击时选项菜单不会显示第一个选项(Tkinter) 的相关文章

随机推荐

  • 使用 xclip 后 Tmux 中的键盘快捷键被停用

    我在 tmux conf 中使用以下配置从 xclip 来回复制文本 bind C c run tmux save buffer xclip i sel clipboard bind C v run tmux set buffer xcli
  • 消息控制器中未定义的方法“stringify_keys”

    当我尝试提交表单时 出现以下错误 当 1 个用户想要向另一个用户发送消息时 该表单就会显示 NoMethodError in MessagesController create undefined method stringify keys
  • 如何删除 Firestore 文档中的字段?

    如何删除 Cloud Firestore 中的文档字段 我正在使用下面的代码 但我不能 this db doc ProfileUser userId followersCount FollowersCount update currentU
  • 在 Web 上正确使用 SVG

    我想知道在 HTML 文档上使用 SVG 的最佳方法是什么 我读过一篇文章说 使用 SVG 图标比图标字体更好 即 fontawesome 等 以获得更好的性能并减少 HTTP 网络 调用 并提高搜索引擎优化 我知道如何使用 包含 SVG
  • 如何使用domains.google.com 验证我的自定义域

    如何使用验证我的自定义域domains google com如果 它不允许重复的密钥 并且 firebase 托管需要重复的密钥条目 并且 firebase 需要具有相同主机的 2 个文本条目 Google Domains 中的 DNS 记
  • UIPageControl 中的问题

    pageControl UIPageControl alloc initWithFrame CGRectMake 153 356 38 36 pageControl userInteractionEnabled YES pageContro
  • Google Maps SDK 中的自定义注释视图

    我创建了一个基于地图的 iOS 应用程序 其中我想使用 iOS 版 Google Maps SDK 而不是 Mapkit 我找到了文档 但没有找到与自定义注释视图相关的方法 任何人都可以为我提供解决方案创建自定义注释视图 信息窗口 以及如何
  • 在数学模式下将变量写为下标

    我正在尝试绘制一些数据 使用 for 循环来绘制分布 现在我想根据循环计数器将这些分布标记为数学符号中的下标 这就是我现在的处境 import matplotlib pyplot as plt import numpy as np impo
  • ASP.NET MVC 使用 UIHint 属性生成 DropDownList

    我想知道如何使用 UIHint 属性生成 DropDownList 我已经自定义了一些预定义属性 但我不知道如何继续生成 DropDownList 这是我对上一个的处理方式 我想以类似的方式使用它 public class CartProd
  • 使用 apache 检查请求中是否存在标头

    如何检查标头是否存在 我不想检查该值是否与 不同 我想使用以下方法检查它是否确实存在 重写条件 我怎样才能在 htaccess 文件中做到这一点 anhubhava 的回答很有用 但逻辑 颠倒了 它应该是 RewriteEngine On
  • Selenium 使用 javascript 获取元素的类属性

    我正在使用 Selenium 用 Ja vascript 编写测试自动化 尝试提取 DOM 元素的类属性对我来说不起作用 这是我的代码 var webdriver require selenium webdriver var driver
  • Java中的顶级类是什么?

    Java中的顶级类是什么 Java中顶级类的定义是什么 我知道这是一个基本问题 但我找不到这个问题的明确而简单的答案 它只是任何不是嵌套类的类 如果您的文件是 Foo java 并且您的类是 Foo 那么它是顶级类 in Foo java
  • iOS:popViewController 意外行为

    我一直在互联网上寻找解决方案 我什么也找不到 所以 我正在使用 UINavigationController 我将两个 UIViewController 推到上面 在第二个推送的 ViewController 中 我正在执行以下代码 voi
  • 在 iOS 6 中,UIViewController 是否可以支持比其父级更多的界面方向?

    iOS 6 中自动旋转的变化似乎让这变得异常困难 或者说不可能 他们似乎在推行这样的理念 子视图控制器不应覆盖其父视图控制器的自动旋转行为 这使得很难完成我想做的事情 我有一个必须纵向显示的视图控制器 它以模态方式推动另一个视图控制器 它是
  • 上下文切换死锁

    在 VS 2008 中调试我的程序时 我遇到了以下错误 CLR 在 60 秒内无法从 COM 上下文 0x34fc1a0 转换到 COM 上下文 0x34fc258 拥有目标上下文 单元的线程很可能执行非泵送等待或处理非常长时间运行的操作而
  • 将原子 int 向量转换或转换为 int 向量的有效方法

    我确实有一个整数向量 我想确保增量操作发生线程安全 所以我使用std vector
  • 计时器不定期更新并“跳过”一秒(Silverlight 4 DispatcherTimer)

    对于以下问题 我希望得到一些帮助 您可以在我的网站上看到这个问题现场扑克百叶窗计时器 http www pokerdiy com poker blinds timer aspx 主时钟 盲定时器倒计时 从 20 00 开始 然后跳转到 19
  • 自定义 UINavigationController UIToolbar 背景图片

    我有一个 iPhone 应用程序使用UINavigationController并希望使用自定义背景图像自定义元素 我能够为UINavigationController s UINavigationBar使用 Objective C 类别很
  • Android 推送通知

    我参考了链接a link http www vogella de code de vogella android c2dm codestartpage html开发推送通知 但在运行时向我显示 UI main xml 我应该如何创建推送通知
  • 单击时选项菜单不会显示第一个选项(Tkinter)

    我添加了一个OptionMenu小部件到我的代码 并分配一个列表作为它的选项 事情是这样的 z StringVar z set userList 0 usersOption OptionMenu frame1 z userList comm