Как получить и передать одновременно выбранное значение из поля со списком в функции

Я хочу получить выбранное значение из поля со списком, и в то же время я должен передать это значение другой вызывающей функции, как это сделать? кода, который я написал, недостаточно для выполнения этого требования, кто-нибудь, пожалуйста, помогите мне. Я знаком с SelectedIndexChanged в C# и других языках! это похоже на Tkinter python?

def fill_Combo(self):
    combo1= ttk.Combobox(frame1,height=1, width=20)
    combo1['values'] = ("AA","BB","CC","DD","EE")
    combo1.current(0)
    combo1.pack()                  
    combo1.place(x=5, y = 75)
    var_Selected=combo1.current()
    combo1.bind("<<ComboboxSelected>>",select_Combo(var_Selected))


def select_Combo(self,var_Selected):
    print "The user selected value now is:"
    print  var_Selected

person John R    schedule 27.08.2014    source источник


Ответы (1)


Прямо сейчас var_Selected всегда равно 0, потому что вы установили current равным 0 при создании поля со списком и только один раз установили var_Selected в это значение. Что вам нужно сделать, так это получить combo1.current() во время выполнения select_Combo. Вы можете сделать это, переименовав combo1 в self.combo1, которое затем автоматически передается в select_Combo через self. Затем вы можете получить текущее значение и делать с ним все, что хотите. И не используйте одновременно pack и place, выберите один.

Пример:

from Tkinter import *
import ttk

class app():

    def __init__(self):
        self.root = Tk()
        self.fill_Combo()
        self.root.mainloop()

    def fill_Combo(self):
        self.combo1= ttk.Combobox(self.root,height=1, width=20)
        self.combo1['values'] = ("AA","BB","CC","DD","EE")
        self.combo1.current(0)              
        self.combo1.place(x=5, y = 75)
        self.combo1.bind("<<ComboboxSelected>>",self.select_Combo)

    def select_Combo(self, event):
        self.var_Selected = self.combo1.current()
        print "The user selected value now is:"
        print  self.var_Selected
        # Any other function you want to use as function(self.var_Selected) or a function that gets self

app()
person fhdrsdg    schedule 27.08.2014
comment
Это был очень полезный ответ, очень ценю вас за ваши усилия. - person John R; 27.08.2014