Получение и использование списка со списком tkinter - PullRequest
0 голосов
/ 18 мая 2018

Я собираю графический интерфейс для настраиваемого калькулятора, который автоматически преобразует определенные единицы измерения в другие единицы измерения.

Я хочу вернуть фактический выбранный текст, чтобы я мог писать операторы из того, что выбрал пользователь.Как заставить Python возвращать фактическое значение вместо того, что я получаю сейчас?

Всякий раз, когда я тестирую этот код, я получаю следующее:

Событие VirtualEvent 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, поэтому я не удивлюсь, если это всего лишь простой синтаксис, который мне не хватает.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

вы можете получить значение Combobox непосредственно из объекта события с помощью 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()
0 голосов
/ 18 мая 2018

Вы должны извлечь содержимое comboARU с помощью функции get() следующим образом:

def callback(eventObject):
    print(comboARU.get())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...