0
下面的代碼示出了分配的項目向量gcombobox
將導致gcombobox
處理程序在現有的項目向量的每個元素的循環(嘗試一下,例如,"a"
或"b"
和你」我會看到來自gcombobox
的多個打印消息)。如果b2
更改爲gradio
按鈕,則不會發生此循環。另外,如果使用tcltk工具包,那麼我們也沒有問題。這對於我在GUI中導致的問題,其中b2
的處理程序更復雜並且操縱一些大數據。任何防止這種循環的建議都會很棒!gcombobox(與Gtk2的視覺)事件循環
options("guiToolkit"="RGtk2")
library(gWidgets)
w=gwindow()
b1=gradio(c("a","b"),container=w)
b2=gcombobox(c(1:2),container=w)
addHandlerClicked(b1,handler=function(h,...) b2[,]=c(1:10))
addHandlerClicked(b2,handler=function(h,...) print("clicked b2"))
謝謝你的工作!我不知道(un)blockHandler。這會派上用場,因爲我在GUI中有幾個令人費解的小部件。在gWidgets中,處理程序只能在小部件選擇時才執行,而不是部件分配?再次感謝你的幫助。 – user2211814 2013-03-27 11:10:47
是的,在gWidgetsRGtk2中,當您將新項目分配給組合框時,嘗試將值設置爲舊值。這對程序員來說很方便。在您的示例中,可以完成此選擇,以便進行選擇。我沒有在gWidgets2RGtk2中做到這一點 - 我現在同意最好能有你描述的行爲。 – jverzani 2013-03-27 20:09:56