Python 检索和使用tkinter组合框选择

Python 检索和使用tkinter组合框选择,python,python-3.x,tkinter,combobox,Python,Python 3.x,Tkinter,Combobox,我正在为一个定制的计算器组装一个GUI,它可以自动将某些度量单位转换为其他度量单位 我想返回实际选择的文本,这样我就可以从用户选择的任何内容中编写if语句。如何让python返回实际值,而不是现在得到的值 每当我测试此代码时,我都会收到以下信息: 虚拟事件x=0 y=0 下面是我尝试用于此过程的代码部分。对于下面的示例代码,我希望用户能够输入英亩或平方英尺的面积。然后,我计划编写一个if语句,将他们选择的任何内容转换为平方公里代码,用于输入本示例中未包含的数字,以保持本文的简洁性 import

我正在为一个定制的计算器组装一个GUI,它可以自动将某些度量单位转换为其他度量单位

我想返回实际选择的文本,这样我就可以从用户选择的任何内容中编写if语句。如何让python返回实际值,而不是现在得到的值

每当我测试此代码时,我都会收到以下信息:

虚拟事件x=0 y=0

下面是我尝试用于此过程的代码部分。对于下面的示例代码,我希望用户能够输入英亩或平方英尺的面积。然后,我计划编写一个if语句,将他们选择的任何内容转换为平方公里代码,用于输入本示例中未包含的数字,以保持本文的简洁性

import tkinter as tk
from tkinter.ttk import *

master = tk.Tk()
master.title("Gas Calculator")
v = tk.IntVar()
combo = Combobox(master)

def callback(eventObject):
    print(eventObject)

comboARU = Combobox(master)
comboARU['values']= ("Acres", "Ft^2")
comboARU.current(0) #set the selected item
comboARU.grid(row=3, column=2)
comboARU.bind("<<ComboboxSelected>>", callback)

master.mainloop()

请让我知道我是否可以扩展任何内容。我还是python新手,所以如果这只是我缺少的一个简单语法,我不会感到惊讶。

您应该使用get函数检索comboARU的内容,如下所示:

def callback(eventObject):
    print(comboARU.get())

您应该使用get函数检索comboARU的内容,如下所示:

def callback(eventObject):
    print(comboARU.get())

您可以直接从事件对象检索组合框的值 通过eventObject.widget.get

import tkinter as tk
from tkinter.ttk import *

master = tk.Tk()
master.title("Gas Calculator")
v = tk.IntVar()
combo = Combobox(master)

def callback(eventObject):
    # you can also get the value off the eventObject
    print(eventObject.widget.get())
    # to see other information also available on the eventObject
    print(dir(eventObject))

comboARU = Combobox(master)
comboARU['values']= ("Acres", "Ft^2")
comboARU.current(0) #set the selected item
comboARU.grid(row=3, column=2)
comboARU.bind("<<ComboboxSelected>>", callback)

master.mainloop()

您可以直接从事件对象检索组合框的值 通过eventObject.widget.get

import tkinter as tk
from tkinter.ttk import *

master = tk.Tk()
master.title("Gas Calculator")
v = tk.IntVar()
combo = Combobox(master)

def callback(eventObject):
    # you can also get the value off the eventObject
    print(eventObject.widget.get())
    # to see other information also available on the eventObject
    print(dir(eventObject))

comboARU = Combobox(master)
comboARU['values']= ("Acres", "Ft^2")
comboARU.current(0) #set the selected item
comboARU.grid(row=3, column=2)
comboARU.bind("<<ComboboxSelected>>", callback)

master.mainloop()

如果您希望能够使用comboAru.current0设置的默认值,则事件处理不起作用,我发现最好是在按下OK按钮时获取combobox值,如果您希望获取值并在以后使用,最好创建一个类,避免使用全局变量,因为类实例及其变量在tkinter窗口根据答案被销毁后仍然存在


如果您希望能够使用comboAru.current0设置的默认值,则事件处理不起作用,我发现最好是在按下OK按钮时获取combobox值,如果您希望获取值并在以后使用,最好创建一个类,避免使用全局变量,因为类实例及其变量在tkinter窗口根据答案被销毁后仍然存在