Dear List,
I'm looking for some informations about the function "tkinsert()".
I d'like to write lot of command in my text window and after to evaluate it
with a button "Submit" for example, but i have some problems:
here a exemple of my code:
1) My first problem
tt=tktoplevel()
txt=tktext(tt,height=40)
tkpack(txt)
var1=paste("x=2")
tkinsert(txt,"0.0",var1)
var2=paste("a=mean(c(1,2,3))")
tkinsert(txt,"end",var2)
But in my text window I have :
x=2a=mean(c(1,2,3))
I d'like to have something like:
x=2
a=mean(c(1,2,3))
2)My second problem,
I use the run function that i have found in R TCLTK example Evaluating R Code
From A Text Window in R TclTk:
run <- function() {
code <- tclvalue(tkget(txt,"0.0","end"))
e <- try(parse(text=code))
if (inherits(e, "try-error")) {
tkmessageBox(message="Syntax error",
icon="error")
return()
}
cat("Executing from script window:",
"-----", code, "result:", sep="\n")
print(eval(e))
}
topMenu <- tkmenu(tt)
tkconfigure(tt, menu=topMenu)
fileMenu <- tkmenu(topMenu, tearoff=FALSE)
tkadd(topMenu, "command", label="Run",
command=run)
But when I run a=mean(c(1,2,3)) I have the result on my R console but i
can't access to the result.
If i write a, R don't know "a".
Thanks a lot,
and so sorry for my poor english, i hope you understand my problems...
Julie.
[[alternative HTML version deleted]]
claude.josse wrote:
> But in my text window I have :
>
> x=2a=mean(c(1,2,3))
>
> I d'like to have something like:
> x=2
> a=mean(c(1,2,3))
AFAIK you need to separate lines with a newline character ('\n').
Put a 'tkinsert(txt, "end", "\n")' between the
insert commands. Or
append each line with '\n'.
>
> 2)My second problem,
In function run:
> print(eval(e))
Make the evaluation in the workspace environment:
print(eval(e, envir=.GlobalEnv))
Then the results are available in R console.
HTH
--
Jarimatti Valkonen
Dear List,
I'm looking for some informations about the function "tkinsert()".
I d'like to write lot of command in my text window and after to evaluate it
with a button "Submit" for example, but i have some problems:
here a exemple of my code:
1) My first problem
tt=tktoplevel()
txt=tktext(tt,height=40)
tkpack(txt)
var1=paste("x=2")
tkinsert(txt,"0.0",var1)
var2=paste("a=mean(c(1,2,3))")
tkinsert(txt,"end",var2)
But in my text window I have :
x=2a=mean(c(1,2,3))
I d'like to have something like:
x=2
a=mean(c(1,2,3))
2)My second problem,
I use the run function that i have found in R TCLTK example Evaluating R Code
From A Text Window in R TclTk:
run <- function() {
code <- tclvalue(tkget(txt,"0.0","end"))
e <- try(parse(text=code))
if (inherits(e, "try-error")) {
tkmessageBox(message="Syntax error",
icon="error")
return()
}
cat("Executing from script window:",
"-----", code, "result:", sep="\n")
print(eval(e))
}
topMenu <- tkmenu(tt)
tkconfigure(tt, menu=topMenu)
fileMenu <- tkmenu(topMenu, tearoff=FALSE)
tkadd(topMenu, "command", label="Run",
command=run)
But when I run a=mean(c(1,2,3)) I have the result on my R console but i
can't access to the result.
If i write a, R don't know "a".
Thanks a lot,
and so sorry for my poor english, i hope you understand my problems...
Julie.
Cet été, pensez aux cartes postales de laposte.net !
[[alternative HTML version deleted]]