[R] Tcl/Tk and mouse
Peter Wolf
pwolf at wiwi.uni-bielefeld.de
Mon Jan 20 14:38:29 CET 2003
Within a loop I tried to draw some things in
dependency on the position of the mouse.
This works fine with R-1.5.1 but R-1.6.1
requires to include some delay by
Sys.sleep(delay) with delay>=0.015.
For smaller values (e.g. 0.0001) the
top level tcltk-window does not appear
and so I am not able to control the elements
to be plotted using the tcltk-widget.
Question1: How can I force the tcltk-widget
to appear / to get the position
of the mouse within the loop?
Question2: Why isn't it allowed to use the
locator function with n=0, with
the meaning to output the
coordinates of the mouse?
( Then my problem can be
solved without Tcl/Tk )
Here is an example:
# Definition of function a:
#
####################################
a<-function(delay=0.015){
library(tcltk)
state <-tclVar("relax")
number<-tclVar("100")
top <-tktoplevel()
show <-tklabel (top,textvariable=number)
up <-tkbutton(top,text="up")
down <-tkbutton(top,text="down")
exit <-tkbutton(top,text="exit",command=function()
tclvalue(state)<-"exit" )
tkpack(show,up,down,exit)
tkbind(up, "<Enter>",function() tclvalue(state)<-"up" )
tkbind(up, "<Leave>",function() tclvalue(state)<-"relax" )
tkbind(down,"<Enter>",function() tclvalue(state)<-"down" )
tkbind(down,"<Leave>",function() tclvalue(state)<-"relax" )
plot(1:400,type="n"); old<-1:2; x<-1; y<-200
repeat{
Sys.sleep(delay)
choice <- tclvalue(state)
if((x<-x+1)>400) break
if(choice=="exit")break
if(choice=="up" ) y<-y+1
if(choice=="down") y<-y-1
if(choice=="relax")y<-y
points(old[1],old[2],col="red")
points(x, y, col="black")
tclvalue(number) <- as.character(y)
old<-c(x,y)
}
tkdestroy(top)
}
#
###############################
# a(0.01) is ok, a(0.0001) is not ok by:
#
# version:
# platform hppa2.0-hp-hpux10.20
# arch hppa2.0
# os hpux10.20
# system hppa2.0, hpux10.20
# status
# major 1
# minor 6.1
# year 2002
# month 11
# day 01
# language R
##############################
Peter Wolf
-----------------------------
H.P. Wolf
University of Bielefeld, Germany
pwolf at wiwi.uni-bielefeld.de
More information about the R-help
mailing list