1

gWidgets-Rにハンドラーがあり、データは次の場所に読み込まれます。

 handler=function(h,...){
                     fname <- gfile(text="Choose a file", 
                                    type="open", 
                                    action="print",
                                    handler = 
                                      function(h,...){
                                        do.call(h$action, list(h$file))
                                      }
                     )
                     load(fname)
                     .GlobalEnv$SETTINGS <- setwrite
                     svalue(status_bar) <- "Settings Loaded"
                   })

関数が終了した後もロードされたものを引き続き使用できるようにするために、最後にGlobalEnvに入力します。そうでない場合、ハンドラー関数が終了すると、作成された「setwrite」オブジェクトはハンドラーが終了すると破棄され、関数が破棄されます。終わらせる。ただし、ユーザーはオブジェクトを必要としないため、これは実際には望ましい結果ではありませんが、パッケージ内の他の関数(エクスポートされていない)はこのオブジェクトを使用する必要があります。私がする必要があるのは、「setwrite」変数をそれらの関数のスコープのどこかに置くことだと思いましpackage:pkgnamehere$SETTINGS <- setwriteた。.GlobalEnv$SETTINGS <- setwrite行はですが、オブジェクトパッケージが見つからないことを示しています。ハンドラーによって作成され、パッケージの非公開関数/その他のgWidgetsイベントハンドラーのスコープにオブジェクトを配置するために、これを正しく行うにはどうすればよいですか。(ユーザーはGUIを使用できるようにする必要があるという考えであるため、エクスポートされません)。ありがとう。

4

1 に答える 1

-1

パッケージの環境にオプションを保存することもできます。

pkgnamehere:::.options

例を参照してください。

library(foreach)
foreach:::.foreachGlobals
<environment: 0x000000001448fae8>
于 2013-03-20T19:14:23.307 に答える