簡體   English   中英

在 gWidgets2 中切換 gbutton

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM