Gtk.jl,Gtk的Julia绑定:Gtk窗口未显示在REPL之外

时间:2018-10-01 11:12:22

标签: gtk julia

我搜寻了这个问题,发现两次相同的问题,但找不到其他版本的Julia。解决方案对我不起作用。我正在使用Xubuntu 18.04系统。

我用Gtk.jl的文档编写了这段代码:

    using Pkg
    Pkg.add( "Gtk" )
    using Gtk

    win = GtkWindow( "Tuto GTK", 400, 200)
    b = GtkButton( "Click me!" )

    push!( win, b )

    showall(win)

一个简单的例子。

它在REPL中有效:

  • 如果我在REPL中按顺序输入语句
  • 如果我将代码写入文件(例如file.jl)并发出include( "file.jl" )

但是它不适用于以下命令:julia file.jl

我认为可能缺少一些初始化代码,但是julia可执行文件似乎没有冗长的选择。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

在您看到Gtk窗口之前,您的程序正在退出并关闭该窗口。在REPL中,该窗口是REPL程序的一部分,不会退出。

您需要一个等待循环。因此,替换

showall(win)

使用

showall(win)
while(true) sleep(0.1) end

或更流畅地

c = Condition()
endit(w) = notify(c)
signal_connect(endit, win, :destroy)
showall(win)
wait(c)