Как получить значение из виджетов, помещенных в фиксированный контейнер Gtk - PullRequest
0 голосов
/ 03 ноября 2019

Всякий раз, когда я получаю значения из выпадающего списка / ввода, я всегда получаю первое значение / возвращает ноль.

Кажется, я не могу найти обходной путь. Я думаю, что проблема заключается в использовании фиксированного контейнера? Единственное решение, которое я могу придумать, - это заменить его сеткой, но это означает, что мне придется с самого начала переделывать весь код.

создание фиксированного контейнера

class MainWindow(Gtk.Window):

    def __init__(self): #constructor
        Gtk.Window.__init__(self, title="dawadaw")
        self.set_size_request(900, 700)
        container = Gtk.Fixed()
        self.add(container)

                # Stack
        main_area = Gtk.Stack()

                #stackwindow1
        sw1 = Gtk.Fixed()

Combobox и кнопка ввода

        list = Gtk.ComboBoxText()
            list.append_text("string1")
            list.append_text("string2")
            list.append_text("string3")
            list.set_active(0)
            sw1.put(list, 180, 167)

        Entry1 = Gtk.Entry()
        Entry1.set_width_chars(10)
        sw1.put(Entry1, 180, 297)

кнопка для извлечения данных

        button = Gtk.Button(label="retrieve values")
        button.connect("clicked", self.button_clicked, 
        Entry1.get_text(), sw1.get_active_text())
        sw1.put(button, 370, 600)

        main_area.add_titled(sw1, "Stack", "stack1")

Button_Clicked funtcion

def button_clicked(self, button, *data):
    print(data)

Я хочу напечатать выбранное значение комбинированного списка и значение, которое я ввел в поле ввода. Однако выпадающий список возвращает только строку1, независимо от того, что я выбираю, а виджет ввода ничего не возвращает.

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

...