Без кода довольно сложно помочь, но я попробую ...
Исходя из вашего вопроса, я предполагаю, что вы хотите получить значение поля со списком, как только пользователь изменит его.
Вам потребуется создать новый обработчик событий, чтобы получить значение при изменении пользователя. Чтобы гарантировать, что весь модуль может использовать эти данные, мы начнем с создания глобальной переменной в верхней части вашего модуля. Это должно быть выше и вне всех классов и определений!
combo_value = -1
Здесь мы создали переменную с именем "combo_value" и установили для нее значение -1. Это важно, потому что, во-первых, она определяет переменную как тип 'integer', а во-вторых, '-1' - это значение, возвращаемое кодом ниже, если в поле со списком ничего не выбрано.
Теперь в классе, где у вас есть код pygtk, поместите это определение. Я предпочитаю помещать все мои обработчики событий в определение "__ init __", поскольку это облегчает их доступ.
def combo_changed(event, data=None):
#This imports the combo_value variable declared above. Otherwise, the module
#would be creating a local variable instead, which would be of no use to the
#rest of the program.
global combo_value
#This retrieves the combo box's selected index and sets the combo_value
#variable to that index.
combo_value = combobox.get_active()
Теперь нам нужно подключить наше поле со списком к этому событию, используя «измененный» сигнал.
combobox.connect("changed", combo_changed)
И вот оно у вас! Затем вы можете подключить все остальные процессы, проверив значение переменной combo_value. Просто запомните - этот код устанавливает эту переменную в INDEX для выбранного элемента в поле со списком, а не в текстовое значение! Это очень важно запомнить, потому что если вы попытаетесь проверить строку в этом переменная, это никуда не приведет.
Значение будет равно -1, если ничего не выбрано. Не забудьте считать с нуля индекс всех ваших предметов. Для справки может быть полезно записать значения вашего поля со списком и их индексы. Это может выглядеть примерно так:
Combobox (выберите цвет)
"Черный" - 0
"Белый" - 1
"Красный" - 2
"Зеленый" - 3
«Синий» - 4
Тогда в коде для работы со значением поля со списком у вас может быть что-то вроде этого:
if combo_value == -1:
pass
#In other words, do nothing at all.
elif combo_value == 0
#Set color to black
elif combo_value == 1
#Set color to white
И так далее, и так далее.
Так что вы можете видеть все в контексте, вот весь код, за исключением моего маленького банального примера выше ...
combo_value = -1
class MyApplication:
def __init__(self):
#Your code here.
def combo_changed(event, data=None):
#This imports the combo_value variable declared above. Otherwise, the module
#would be creating a local variable instead, which would be of no use to the
#rest of the program.
global combo_value
#This retrieves the combo box's selected index and sets the combo_value
#variable to that index.
combo_value = combobox.get_active()
#Your GUI code is here.
#This is where your combobox is created from a model (we're assuming it is
#already declared before this point, and called "MyModel".
combobox = gtk.ComboBox(MyModel)
#Now we connect the "changed" signal of the combobox to the event we created.
combobox.connect("changed", combo_changed)
Надеюсь, это поможет! Опять же, без кода очень сложно дать вам конкретику. Я помогаю вам, так как вы здесь новичок, но, пожалуйста, не забудьте опубликовать конкретные примеры и код из вашего проекта по всем будущим вопросам.
Ура!