Skip to content

tcltk: click and return table cell index

2 messages · Dalthorp, Daniel, John Fox

#
I'm struggling mightily with what should be a simple task...when a user
clicks on a cell in a tcltk table widget, I need to know which cell was
clicked.

One idea that gives a cryptic error:
tkbind(table1, "<Button-1>", function(x, y){
  tcl(table1, "index", x, y)
}

# x, y give pixel coordinates; "index" should give cell coordinates, but
format must be correct

I get an error message:

wrong # args: should be ".25.1 index <index> ?row|col?".

To which I respond, "Yes, I know I have the format wrong, but how can I
make sense of THAT?"

Does anyone know a simple fix?

Much appreciated!

-Dan
#
Dear Daniel,

Try 

tkbind(table1, "<Button-1>", function(){
     res <- try(tclvalue(tkindex(table1, "active")), silent=TRUE)
   if (inherits(res, "try-error")) print (NULL)
   else print(res)
})

I put in the calls to print() so that you could see how it works.

I hope this helps,
 John

-----------------------------
John Fox, Professor
McMaster University
Hamilton, Ontario
Canada L8S 4M4
Web: socserv.mcmaster.ca/jfox