Tkinter Optionmenu 小部件中相同值的索引

2024-02-29

我正在尝试访问选项菜单小部件中相同值的索引。在下面的代码中,无论我选择两个“b”字符中的哪一个,列表中的字符“b”都会返回索引 1。我需要根据列表中的索引位置区分两个“b”字符,即从选项菜单小部件中选择第一个“b”应返回索引 1,而第二个“b”应返回索引 2。请告诉我该怎么做。提前致谢。

from Tkinter import *
    
class GUI(Frame):
    
    def __init__(self):
        Frame.__init__(self)
        self.master.title("New window")
        self.master.geometry("300x200")
        self.grid()
            
        self.list1 = ["a", "b", "b"]
    
        self.var = StringVar()
        self.var.set("")
        self.entry = Entry(self, textvariable=self.var)
        self.entry.grid(row=0, column=0)
        self.optionMenu = OptionMenu(self, self.var, *self.list1)
        self.optionMenu.grid(row=0, column=1)
    
        self.button = Button(self, text="Print", command=self.print_fun)
        self.button.grid(row=0, column=2)
    
    def print_fun(self):
        print self.optionMenu["menu"].index(self.var.get())
    
obj = GUI()
    
obj.mainloop()

这不是选项菜单设计的工作方式。您必须创建一个自定义选项菜单。选项菜单没有什么特别的,它只是一个按钮和一个菜单,以及几个赋予它所具有的行为的函数。

从可用性的角度来看,这是一个非常糟糕的设计,因为用户无法知道第一个“b”选择和第二个“b”选择之间的区别。我希望一个选择不会映射到“停用炸弹”,另一个选择是“引爆炸弹”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tkinter Optionmenu 小部件中相同值的索引 的相关文章

  • Python:Tkinter Treeview 可搜索

    相当直接的问题 尽管我用了最好的谷歌搜索 但我找不到任何相关内容 我有一个 Python 应用程序 它使用 Tkinter Treeview 小部件作为表格 这对于我需要使用它的用途来说效果很好 但最终会在一些树中出现几百个项目 无论如何
  • 根据标准在多个需求之间分配数量

    我正在创建一个周期盘点表 表 1 将是用户输入 其中将放置找到的材料和数量 表 2 是盘点时的库存快照 我希望将找到的材料数量分配到表 2 上的数量中 直到表 1 的数量用完为止 按照从最新批次 日期代码 到最旧批次 先进先出 的顺序分配数
  • 在 ttk 进度条中显示百分比

    我正在尝试显示百分比ttk Progressbar当该功能运行时提醒用户已执行的过程的范围以及剩余的内容 我能够显示百分比 但百分比最多23 哪一个是length of my tuple 我怎样才能让它达到100 length of tup
  • Tkinter - 打开一个窗口并关闭另一个窗口

    我想要一个登录屏幕 当登录成功时 屏幕将关闭并创建一个新屏幕 问题是 当我执行以下代码时 两个屏幕同时打开 如果您有任何改进代码的建议 请提出 from Tkinter import import mysql connector impor
  • 在 MATLAB 中用两个值替换向量值

    我必须创建一个以向量作为输入的函数v和三个标量a b and c 该函数替换了的每个元素v等于a有一个二元素数组 b c 例如 给定v 1 2 3 4 and a 2 b 5 c 5 输出将是 out 1 5 5 3 4 我的第一次尝试是尝
  • MongoDB - 解释特定的解释输出

    我使用的是 MongoDB 版本 2 4 8 test 2014 03 25 14 42 13 0 gt gt gt db users getIndexes v 1 key id 1 ns test users name id v 1 ke
  • 使用 Tkinter 进行多线程 Python

    我用这些函数在画布上画小圆圈 这是绘制圆圈的函数 class Fourmis def init self can posx posy name radius self can can self largeur can int self ca
  • Ttk Treeview:跟踪键盘选择

    这是一个带有 ttk 树视图的 Tk 小部件 当用户单击该行时 会执行某些功能 此处仅打印项目文本 我需要的是以下内容 最初的重点是文本输入 当用户按下 Tab 键时 焦点应该转到第一行 并且应该执行绑定到 Click 事件的函数 当用户使
  • 创建圆形图像 PIL Tkinter

    Currently I have a zoom feature in my application that works very well however I d like the actual zoom box to be a circ
  • 寻找多列索引的最佳顺序

    假设我有一个包含两个索引的表 一个位于 a 列 一个位于 a b 和 c 列 我注意到 根据索引定义中列的顺序 MySQL 可能最终使用单列索引而不是多列索引 即使多列索引中的所有三列都在 ON 中引用JOIN 的一部分 这有点引出了一个问
  • 图像未出现在 Tkinter 上

    我有一个问题Tkinter因为我想添加图像作为框架的背景 但是 我尝试了很多方法但没有显示出来 我在代码的开头 在解决这个问题后我将继续前进 这是我的代码 import Tkinter from Tkinter import sc Tk s
  • 我无法设置顶级标题

    我想为 TopLevel 设置标题 但 TopLevel 显示 Root 的标题 我认为我的下一个脚本与 TkInter 文档中的示例相对应 但给了我不好的结果 你能解释一下 为什么我的设置master title 顶部 in 应用程序顶部
  • SQL:将现有列设置为 MySQL 中的主键

    我有一个包含 3 列的数据库 id name somethingelse 该表没有设置索引 我收到 未定义索引 在 phpmyadmin 中id 是一个 7 位字母数字值 每行都是唯一的 我想将 Drugid 设置为主键 索引 我不知道有没
  • 如何处理 Tkinter 中的窗口关闭事件?

    如何在 Python Tkinter 程序中处理窗口关闭事件 用户单击 X 按钮 Tkinter 支持一种称为协议处理程序 http web archive org web 20201111215134 http effbot org tk
  • Tkinter 框架滚动条

    我的目标是向其中有多个标签的框架添加一个垂直滚动条 一旦框架内的标签超过框架的高度 滚动条就会自动启用 经过一番搜索 我发现this https stackoverflow com questions 3085696 adding a sc
  • 如何在保留图标的同时删除最小化/最大化按钮?

    是否可以显示我的图标toplevel and root删除最小化和最大化按钮后的窗口 我尝试使用 toolwindow但之后图标就无法显示了 有没有其他方法可以从窗口中删除最小和最大尺寸按钮 同时仍显示图标 from tkinter imp
  • 用于多个窗口的 Tkinter 示例代码,为什么按钮无法正确加载?

    我正在编写一个程序 应该 按一下按钮即可打开一个窗口 按另一个按钮关闭新打开的窗口 我使用类 以便稍后可以将代码插入到更大的程序中 但是 我无法正确加载按钮 import tkinter as tk class Demo1 tk Frame
  • 如何删除选择复选框后出现的 Python3 tkinter ttk.CheckButton 虚线?

    有没有什么方法可以删除使用 默认 主题时单击 ttk Checkbutton 对象的文本时出现的虚线轮廓 例子 from tkinter import from tkinter import ttk master Tk style ttk
  • 如何在 R 中的 for 循环内将值存储在向量中

    我正在开始使用 R 但我对以下问题感到非常沮丧 我试图将 for 循环内完成的某些计算的值存储到我之前定义的向量中 问题是如何进行索引 因为for循环迭代代码的次数取决于用户的输入 所以变量i不一定要从1开始 它可以从80开始 for举个例
  • 在 MySQL 数据库中保持 TEXT 字段唯一的最佳方法

    我想让 TEXT 字段的值在我的 MySQL 表中唯一 经过小型研究 我发现由于性能问题 每个人都不鼓励在 TEXT 字段上使用 UNIQUE INDEX 我现在想用的是 1 创建另一个字段来包含 TEXT 值的哈希值 md5 text v

随机推荐