Я использую Glade для добавления списка в окно, а затем загружаю графический интерфейс в Julia с помощью GtkBuilder из Gtk.jl.При загрузке списка, Юлия считает его виджетом GtkContainer, а не списком (кажется, что список не существует в исходном коде пакета Julia, за исключением одного или двух комментариев).Я искал исходный код Gtk.jl и просто не могу ничего найти (или не понимаю достаточно того, на что смотрю).
Несколько сигналов Listbox работают, но самый важный ("строка активирована") не.Мне действительно нужен этот сигнал для излучения ... Это не реализовано?Есть ли ошибка?Я делаю что-то неправильно?Мне просто нужно использовать более сложный GtkTreeView?
Закомментированные строки кода julia - это сигналы, которые не срабатывают (меня это тоже не волнует).Согласно документации Gtk, сигнал «активировать» предназначен для GtkListboxRow, и это «активируемый строкой» сигнал, который должен использовать пользователь, но я не могу заставить его излучать ...
"списокExample.glade ":
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkWindow" id="win">
<property name="can_focus">False</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkListBox" id="lb">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkListBoxRow">
<property name="width_request">100</property>
<property name="height_request">80</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">label1</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="width_request">100</property>
<property name="height_request">80</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">label2</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow">
<property name="width_request">100</property>
<property name="height_request">80</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">label3</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>
using Gtk
app = GtkBuilder(filename = "listbox Example.glade")
win = app["win"]
lb = app["lb"]
showall(win)
# id1 = signal_connect(lb, "activate-cursor-row") do widget
# println("activate-cursor-row")
# end
# id2 = signal_connect(lb, "move-cursor") do widget
# println("move-cursor")
# end
id3 = signal_connect(lb, "row-activated") do widget
println("row-activated")
end
id4 = signal_connect(lb, "row-selected") do widget
println("row-selected")
end
id5 = signal_connect(lb, "select-all") do widget
println("select-all")
end
id6 = signal_connect(lb, "selected-rows-changed") do widget
println("selected-rows-change")
end
# id7 = signal_connect(lb, "toggle-cursor-row") do widget
# println("toggle-cursor-row")
# end
id8 = signal_connect(lb, "unselect-all") do widget
println("unselect-all")
end
# id9 = signal_connect(lb, "activate") do widget
# println("activate")
# end
julia> typeof(lb)
Gtk.GtkContainerLeaf