Julia Gtk Windows не отображаются за пределами REPL
Я пытаюсь использовать Джулию с пакетом Gtk вне REPL.
Используя этот код:
Using Gtk.ShortNames
win = @Window("My Window")
в REPL работает, но тот же код положить в файл test.jl и использовать:
julia test.jl
в командной строке не работает.
Я попробовал метод, написанный здесь: https://github.com/JuliaLang/Gtk.jl
Using Gtk.ShortNames
win = @Window("gtkwait")
# Put your GUI code here
if !isinteractive()
c = Condition()
signal_connect(win, :destroy) do widget
notify(c)
end
wait(c)
end
Код работает, но окно не появляется.
Если это поможет, я работаю в Manjaro Linux с 4.1 Linux Kernel и у меня установлены библиотеки GTK2 и GTK3.
1 ответ
Ваш код, который буквально соответствует указаниям документации, также не работает для меня (Julia 0.4.0, Gtk.jl 0.9.2). Возможно, документация устарела.
Что работает, это использовать Gtk.gtk_main
а также Gtk.gtk_quit
:
using Gtk.ShortNames
win = @Window("Hello")
signal_connect(win, :destroy) do widget
Gtk.gtk_quit()
end
Gtk.gtk_main()
Я не знаю, является ли это "правильным" способом, но он работает и ближе к тому, как все работает в C API GTK + (с gtk_main
а также gtk_main_quit
).