1

それぞれtkframeに2つのチェックボタンがあるウィジェットを作成することを考えています。最初のチェックボタンをクリックすると、最初のフレームが拡張されて、より多くのオプション行が表示されることを願っています。しかし、2番目のチェックボタンをクリックすると、2番目のフレームが拡大され、1番目のフレームが縮小されて1番目のチェックボタンのみが含まれるようになることを願っています。チェックボタンをクリックすると、いくつかの隠線がアクティブになるようなものです。誰もこれを行う方法を知っていますか?

ありがとう、DD

4

1 に答える 1

2

tcltk の gWidgets (または github の gWidgets2、 https ://github.com/jverzani/gWidgets2tcltk/blob/master/R/gexpandgroup.R )内でこのようなものを取得できます。パターンは次のとおりです。

library(gWidgets)
options(guiToolkit="tcltk")

lorem <- "lorem ipsum dolor sit amet, consectetur adipiscing
elit. Suspendisse tempus aliquam ante, at malesuada tellus
vulputate at. Morbi ac diam augue, vel bibendum lorem.
Curabitur ut est molestie leo sagittis vestibulum.
"

w <- gwindow()
size(w) <- c(800, 400)
g <- ggroup(cont=w, horizontal=FALSE)
expand1 <- gexpandgroup("frame 1", cont=g, anchor=c(-1,1))
expand2 <- gexpandgroup("frame 2", cont=g, anchor=c(-1,1))
visible(expand2) <- FALSE

## put stuff into expanding groups
glabel(lorem, cont=expand1)
glabel(lorem, cont=expand2)

callback <- function(h,...) {
  print("click 2")
  if(visible(expand2) & visible(expand1))
    visible(expand1) <- FALSE
}
addHandlerChanged(expand2, callback)

expandgroup ウィジェットは実際には、並べてではなく、積み重ねた場合にのみ機能します。これを単純な tcltk を使用して GUI に統合することは不可能ではありません。

于 2013-03-28T13:08:01.303 に答える