我遇到了Gtk问题。 我的代码正在编译,没有错误,但是仅显示带有标题的窗口。
所以我想知道我做错了什么,并尝试了一些文档示例(请参见下文)。 而且它也不起作用。
我更新了软件包rm,然后再次添加,没有错误。 编译没有错误,没什么。
当我询问小部件是否可见时,它表示是。
我看到这可能是gtk的配置问题,但没有更多解释。
谢谢您的帮助!
using Gtk
ls = GtkListStore(String, Int, Bool, Bool)
push!(ls,("Peter",20,false,true))
push!(ls,("Paul",30,false,true))
push!(ls,("Mary",25,true,true))
insert!(ls, 2, ("Susanne",35,true,true))
rTxt = GtkCellRendererText()
rTog = GtkCellRendererToggle()
c1 = GtkTreeViewColumn("Name", rTxt, Dict([("text",0)]), sort_column_id=0)
c2 = GtkTreeViewColumn("Age", rTxt, Dict([("text",1)]), sort_column_id=1)
c3 = GtkTreeViewColumn("Female", rTog, Dict([("active",2)]), sort_column_id=2)
tmFiltered = GtkTreeModelFilter(ls)
GAccessor.visible_column(tmFiltered,3)
tv = GtkTreeView(GtkTreeModel(tmFiltered))
push!(tv, c1, c2, c3)
selection = GAccessor.selection(tv)
signal_connect(selection, "changed") do widget
if hasselection(selection)
currentIt = selected(selection)
println("Name: ", GtkTreeModel(tmFiltered)[currentIt,1],
" Age: ", GtkTreeModel(tmFiltered)[currentIt,1])
end
end
ent = GtkEntry()
signal_connect(ent, "changed") do widget
searchText = get_gtk_property(ent, :text, String)
for l=1:length(ls)
showMe = true
if length(searchText) > 0
showMe = showMe && occursin(lowercase(searchText), lowercase(ls[l,1]))
end
ls[l,4] = showMe
end
end
vbox = GtkBox(:v)
push!(vbox,ent,tv)
win = GtkWindow(vbox, "List View with Filter")
showall(win)
答案 0 :(得分:0)
我尝试过,但是作为文件运行,您的应用关闭太快了,根本看不到它的显示。这在Gonk.jl文档的“非REPL使用”下进行了介绍,即在julia REPL命令行之外以文件形式运行。只需将showall(win)替换为:
condition = Condition()
endit(w) = notify(condition)
signal_connect(endit, win, :destroy)
showall(win)
wait(condition)
然后,该应用会将控制权传递给内部Gtk运行时事件循环,并等待该应用关闭。我能够运行您的应用程序,并看到与此相关的复选框很好。如果不能,则可能是本地文件有问题。