小さなウィジェットを開発して、ダイアログボックスに数字を入力して後で使用するためにその番号をワークスペースに保存することを試みていますが、ウィジェットに入力された後に入力されたテキストを検索するのに問題があります。私はあるウィジェットから別のウィジェットへ情報を渡す方法についていくつかのスレッドを見つけましたが、ワークスペースには戻っていません。私が動作させる唯一の方法は、コードを2番目の最後の行に実行し、最後の行を別々に手動で実行することです。誰も私を喜ばせることができますか?R内のgedit入力をRstudioワークスペースに出力するには
# clearing workspace
rm(list = ls())
# Loading packages
library(gWidgets)
library(gWidgetstcltk)
# Setting up Widget
win=gwindow(title='Experiment setup',visible = TRUE)
grp_name <- ggroup(container = win)
okbut<-ggroup(container = win)
lbl_data_frame_name <- glabel(
'Choose number of indexing variables: ',
container = grp_name
)
#Asking user for input
obj<-gedit(container=grp_name,handler=function(h,..){
print(as.integer(svalue(h$obj)))
}, action = dispose(win))
#Attempt to return text from user input to workspace
textfromgedit=svalue(obj)
このスクリプトをファイルとして保存する必要があると思われます。 'script.R'を実行し、' source( "script.R") 'でファイルを呼び出します。それがトリックですか? – CephBirk
私はあなたが 'ginput'を探していると思います。この 'gedit'を' dispose(win) 'アクションで使用するのは正しいことではありません。ハンドラ中にウィンドウをクリアするには、そのハンドラをハンドラに追加し、その値をハンドラ内に保存します。そのためには、別の環境に割り当てる必要があります。このタスクは、通常、 '<< - 'で実行されます。 – jverzani
ありがとう、私は両方を試みた。別のスクリプトで使用すると、入力テキストが変数としてワークスペースに出力されず、ginputは機能しましたが、元のコンテナにginputウィンドウを埋め込むことができませんでした。これは最終的に1つのコンテナ内の入力ウィンドウのサブセットになるので、これを実行したいと思います。私はginputの "親"または "ウィジェット"オプションをコンテナ(この場合はgrp_name)として設定し、ginputを埋め込むと思ったが、そうではなかった。何か案は?ご協力いただきありがとうございます。その多くの評価!!!! –