![](/img/trans.png)
[英]gwidgets2: how to prevent gbutton handler to run when change gbutton value?
[英]Toggle a gbutton in gWidgets2
我正在 gWidgets2 中創建一個 gbutton,當它被點擊時,它將在“go”和“stop”之間切換。
我正在關注這個例子: toggling a group of icons in gWidgets
我的代碼:
library(gWidgets2)
library(gWidgets2RGtk2)
options(guiToolkit="RGtk2")
w= gwindow()
g1 <- ggroup(horizontal=TRUE, cont=w)
icon <- gbutton('go', container = g1)
state <- FALSE # a global
changeState <- function(h,...) {
if(state) {
svalue(icon) <- "go"
} else {
svalue(icon) <- "stop"
}
state <<- !state
}
addHandlerClicked(icon, handler=changeState)
它會創建一個按鈕,並在單擊時在“開始”和“停止”之間切換。 但問題是我必須點擊兩次才能切換。 我希望它應該一鍵在“開始”和“停止”之間切換。
You can use blockHandlers() and unblockHandlers() functions to avoid this issue.
w= gwindow()
g1 <- ggroup(horizontal=FALSE, cont=w)
icon <- gbutton("go", container = g1)
#icon <- gimage(reject,cont=g1)
state <- FALSE # a global
addHandlerClicked(icon, function(h,...) {
#
if(!state) {
blockHandlers(icon)
svalue(icon) <- "stop"
unblockHandlers(icon)
} else {
blockHandlers(icon)
svalue(icon) <- "go"
unblockHandlers(icon)
}
state <<- !state
})
I tried this and it works for me.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.