Python Tkinter将optionMenu中选择的选项放入变量以供进一步使用

Python Tkinter将optionMenu中选择的选项放入变量以供进一步使用,python,python-3.x,tkinter,tkinter.optionmenu,Python,Python 3.x,Tkinter,Tkinter.optionmenu,在“tkinter”中创建下拉菜单时,如下所示: options = ['0', '1', '2', '3', '4'] option = tk.OptionMenu(menu, var, *options) var.set('Select number') 我想知道如何准确地获取用户选择的整数,并将其转换为变量,以便以后使用 问题:如何获取用户选择的整数 您将选项定义为str的列表,因此所选选项将分配

在“tkinter”中创建下拉菜单时,如下所示:

options = ['0',
           '1',
           '2',
           '3',
           '4']

option = tk.OptionMenu(menu, var, *options)

var.set('Select number')
我想知道如何准确地获取用户选择的整数,并将其转换为变量,以便以后使用

问题:如何获取用户选择的整数

您将
选项
定义为
str
的列表,因此所选选项将分配给代码
变量
中给定的
文本变量。要从
str
获取
整数
,请执行以下操作:

option_int = int(var.get())

工作示例,如何获取所选
选项菜单
项的
索引

import tkinter as tk

class myOptionMenu(tk.OptionMenu):
    def __init__(self, parent):
        self.item = tk.StringVar()
        self.item.set("Select option")  # default value
        self.index = None
        self.options = ['0. Option', '1. Option', '2. Option', '3. Option']

        super().__init__(parent, self.item, *self.options, command=self.command)
        self.pack()

    def command(self, v):
        # Loop 'options' to find the matching 'item', return the index
        self.index = [i for i, s in enumerate(self.options) if s == self.item.get()][0]
        print("def option({}), variable.get()=>{}, index:{}".format(v, self.item.get(), self.index))
        # >>> def option(2. Option), variable.get()=>2. Option, index:2

root = tk.Tk()

option = myOptionMenu(root)

root.mainloop()
主循环中的用法

if option.item.get() == '2. Option':
    print("Option {} is selected.".format(option.item.get()))

if option.index == 2:
    print("Option {} is selected.".format(option.index))

使用Python:3.5.3-TkVersion:8.6进行测试

您的问题可以通过阅读可用的文档来回答。你在努力解决问题的哪一部分?看起来您已经知道如何将小部件与变量关联。