如何在不运行与其处理程序关联的功能的情况下更改gbutton文本?
请考虑以下代码:
library(gWidgets2)
w <- gwindow("Buttons", visible=FALSE)
g <- ggroup(cont=w, horizontal=FALSE)
b2 <- gbutton("ouvrir", cont=g)
## with a handler
b4 <- gbutton("click me",
handler=function(h,...) {
if(svalue(b2) == "open")
svalue(b2) <- "ouvrir"
else
svalue(b2) <- "open"
},
action = NULL, cont=g)
visible(w) <- TRUE
svalue(b4) <- "Please not call the handler!!"
在gWidgets2中,当我通过svalue()命令更改按钮文本时,会调用按钮处理程序!但是,我想在单击按钮时调用处理程序。任何解决这种情况的建议。
提前致谢。
答案 0 :(得分:1)
设置标签时,代码会调用invoke_change_handler()
。有几种方法可以解决这个问题:
在设置(blockHandlers
)之前阻止处理程序,然后取消阻止(unblockHandlers
)
你可以抓住底层小部件并设置文本,在RGtk2中使用gWidgets2,obj$widget$setText("new value")
之类的东西应该有效。