Обратные вызовы радио-кнопок Gtk в Юлии - PullRequest
2 голосов
/ 18 апреля 2020

Я пытаюсь восстановить и мой старый код, который использовал радио-кнопки в Джулии. Однако обратные вызовы, похоже, не работают (обратные вызовы, аналогичные флажкам и кнопкам do работают). Вот минимальный пример:

using Gtk

function test()
    win = GtkWindow("Radio Button Test")
    vbox = GtkBox(:v)
    push!(win, vbox)
    choices = ["first", "second", "third", "fourth"]
    radios = [GtkRadioButton(choice) for choice in choices]
    set_gtk_property!(radios[1], :active, true)
    for r in radios
        set_gtk_property!(r, :group, radios[1])
        signal_connect(r, "toggled") do _
            warn_dialog("Changed to: $(choices[findfirst(radios, r)])")
        end
        push!(vbox, r)
    end
    showall(win)
    nothing
end

Что я делаю не так?

ОБНОВЛЕНИЕ: Я обновился до последней версии (Julia 1.4.1 с Gtk 1.1.3), но проблема сохраняется, т.е. функция обратного вызова, кажется, не вызывается, когда я нажимаю переключатели.

1 Ответ

1 голос
/ 19 апреля 2020

Это не было реальной проблемой - проблема была с функцией обратного вызова: findfirst больше нельзя использовать таким образом, поэтому произошла (невидимая) ошибка. Изменение обратного вызова на

warn_dialog("Changed to: $(get_gtk_property(r, :label, AbstractString))")

работает как положено.

...