2016-11-12 6 views
1
`win <- gwindow(title = "Analysing PDB structures", visible=TRUE, name=title, 
      width = NULL, height = NULL, parent=NULL) 
group <- ggroup(horizontal = FALSE, container=win) 
obj <- glabel("Type your PDB code here:", container = group) 
obj <- gedit("", container=group) 
obj <- gbutton("Go", container = group)` 

ユーザーがgeditに値を入力してgobutton "Go"を押すと、次のコード(install.packages(bio3d)など)を自動的に実行するにはどうすればよいですか?gWidgetにどのように機能を与え、ユーザーによる入力を 'gedit'に利用する方法を教えてください。

編集:この機能に対応した投稿に応じて、ありがとうございました。 obj3のobj2の 'gedit'でユーザーから与えられた入力をどのように利用できますか?私は間違って何をしていますか?

win <- gwindow(title = "Analysing PDB structures", 
      visible=TRUE, name=title, 
      width = NULL, height = NULL, parent=NULL) 
group <- ggroup(horizontal = FALSE, container=win) 
obj1 <- glabel("Type your PDB code here:", container = group) 
innergroup <- ggroup(container = group) 
obj2 <- gedit((file1<-""), container=innergroup) 
obj3<-addHandlerChanged(obj2, handler=function(...){ 
    gbutton("Go", container = innergroup, 
     handler = function(h, ...) { 
     gmessage(svalue(obj2), title = (pdb<- read.pdb(file1))) 
     }) 
}) 

答えて

0

だけハンドラを追加します。

win <- gwindow(title = "Analysing PDB structures", 
       visible=TRUE, name=title, 
       width = NULL, height = NULL, parent=NULL) 
group <- ggroup(horizontal = FALSE, container=win) 
obj1 <- glabel("Type your PDB code here:", container = group) 
obj2 <- gedit("", container = group) 
obj3 <- gbutton("Go", container = group, 
       handler = function(h, ...) { 
    gmessage(svalue(obj2), title = "") 
}) 

ではなくgmessage()をあなたのコードを入れて、または前に、あなたの関数を定義し、名前だけで、それを参照してください:handler = foo。この関数は、このパターンに従って定義する必要があります。

foo <- function(h, ...) 
{ 
    gmessage(svalue(obj2), title = "") 
} 
関連する問題