私はTclTkの例に従ってリストボックスを作成し、ユーザーが好みのフルーツを選択できるようにしました(下のコードを参照)。この例はユーザーの選択肢を表示し、それだけです。しかし、私はスクリプトの後半で、さまざまなことをするためにその選択肢を使いたい(プロットのタイトル、ファイル名などで使用する).TclTkのGUIから他のスクリプトにユーザの選択を戻すにはどうすればよいですか?TclTk GUIから変数を返すR
library(tcltk2)
win1 <- tktoplevel()
win1$env$lst <- tk2listbox(win1, height = 4, selectmode = "single")
tkgrid(tk2label(win1, text = "What's your favorite fruit?", justify = "left"),
padx = 10, pady =c(15, 5), sticky = "w")
tkgrid(win1$env$lst, padx = 10, pady = c(5, 10))
fruits <- c("Apple", "Orange", "Banana", "Pear", "Apricot")
for (fruit in fruits)
tkinsert(win1$env$lst, "end", fruit)
# Default fruit is Banana. Indexing starts at zero.
tkselection.set(win1$env$lst, 2)
onOK <- function() {
fruitChoice <- fruits[as.numeric(tkcurselection(win1$env$lst)) + 1]
tkdestroy(win1)
msg <- paste0("Good choice! ", fruitChoice, "s are delicious!")
tkmessageBox(message = msg)
}
win1$env$butOK <-tk2button(win1, text = "OK", width = -6, command = onOK)
tkgrid(win1$env$butOK, padx = 10, pady = c(5, 15))
誰かがRでTclTkを使って何かを構築していることに本当に興奮していますが、あなたは[再現可能な例]を与える必要があります(http://stackoverflow.com/questions/5963269/how-to-make-a-great -r-reproducible-example)、または今までに何を得ているのか、あなたが使っているパッケージを調べてください。 – alistaire
謝罪します。私が従っていた例のコードを追加しました。おかげさまで – jim616