[R] How to use the options "usecommand" and "command" of tktable?

Cleber N.Borges klebyn at yahoo.com.br
Fri Dec 18 01:07:34 CET 2015

How to capture the output from the "command" option of tktable and how 
to send input to it?

As far as I understand, the most appropriate way to use the tktable is 
through the flag usecommand and command.

It fires the string information and cell coordinates and wait for a new 
string to set a new value.

It's I understood by example in pure TCL given in reference [1].

Is there how to translate this code to R?

I believe that the signs of tktable not reach the level of R and will 
need to be accessed by the lower level commands. But how?

Thank you in advance for dedicated attention.


[1] - http://dbaspot.com/object/showthread.php?t=785221&pagenumber=

### my R code
library( tcltk )
tclRequire( "Tktable" )
tclServiceMode( FALSE )
top <- tktoplevel()

TableCommand <- function( x=NULL ) {
     cat( class( x ), '\n' )
     cat( x , '\n' )

tab <- tkwidget( top, 'table', rows=2, cols=2, usecommand=TRUE, 
command=TableCommand )
tcl('pack', tab, expand=TRUE, fill='both' )
tclServiceMode( TRUE )

### TCL from [1]
package require Tktable

namespace eval ::test {}

proc ::test::build_table {} {

catch {destroy .test}
variable top [toplevel .test]

variable myarray
array unset myarray

variable table [table $top.table \
-rows 5 \
-height 5 \
-cols 2 \
-command "[namespace current]::TableCommand %S %r %c"]

pack $table -expand true -fill both
$table tag config complete -background blue

proc ::test::TableCommand {S r c} {

variable table
variable myarray

if {$S != ""} {
# I only want integers in my cells!
puts "\"$S\" into $r,$c ?"

if {[string is integer -strict $S]} {
$table tag cell complete "$r,$c"
set myarray($r,$c) $S
} else {
$table tag cell !complete "$r,$c"
array unset myarray $r,$c
if {[info exists myarray($r,$c)]} {
return $myarray($r,$c)
return "$r,$c"


Este email foi escaneado pelo Avast antivírus.

More information about the R-help mailing list