Dear R-users, I would like to build N "tkentry" compounds in the same window, with default text for each. As N is variable I need to construct them in an iterative way : library(tcltk) main<-tktoplevel() tktitle(main)<-"My Tool" filenames<-c("toto","tata","titi") N<-length(filenames) for (i in 1: N) { text<-tclVar(filenames[i]) # get a filename (string value) textField<-tkentry(main,textvariable=text) # build a text field tkgrid(textField) } The problem is : How to keep references for each tclVar created, in order to acces to the text modifications eventually done for each field ? Example : (Embedded image moved to file: pic14771.jpg) to (Embedded image moved to file: pic11538.jpg) Regards. Alexandre MENICACCI Bioinformatics - FOURNIER PHARMA 50, rue de Dijon - 21121 Daix - FRANCE a.menicacci at fr.fournierpharma.com t?l : 03.80.44.76.17
a.menicacci at fr.fournierpharma.com writes:> Dear R-users, > > I would like to build N "tkentry" compounds in the same window, with > default text for each. As N is variable I need to construct them in an > iterative way : > > > library(tcltk) > > main<-tktoplevel() > > tktitle(main)<-"My Tool" > > filenames<-c("toto","tata","titi") > N<-length(filenames) > > for (i in 1: N) { > text<-tclVar(filenames[i]) # get a filename (string value) > textField<-tkentry(main,textvariable=text) # build a text field > tkgrid(textField) > } > > The problem is : How to keep references for each tclVar created, in order > to acces to the text modifications eventually done for each field ?Can't you just use lists? library(tcltk) main <- tktoplevel() tktitle(main) <- "My Tool" filenames <- c("toto", "tata", "titi") N <- length(filenames) text <- vector("list", N) textField <- vector("list", N) for (i in 1:N) { text[[i]] <- tclVar(filenames[i]) # get a filename (string value) textField[[i]] <- tkentry(main,textvariable=text[[i]]) #build a text field tkgrid(textField[[i]]) } tclvalue(text[[2]]) <- "tutu"> > Example : > > (Embedded image moved to file: pic14771.jpg) to > (Embedded image moved to file: pic11538.jpg)??! -- O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
Dear Alexandre, It is possible to do what you want. Take a look, for example, at the dialog box produced by "Statistics -> Contingency tables -> Enter and analyze two-way table" in the Rcmdr package. That dialog box is able to modify itself and to keep variables for an arbitrary number of tkentry() boxes. It does this by constructing names for the variables as text strings, and then using assign() and eval() to set and retrieve values. (Perhaps there's a more elegant way to do this.) The code for the function enterTable(), which constructs this dialog, is in the file statistics-tables-menu.R in the Rcmdr source package. I hope this helps, John -------------------------------- John Fox Department of Sociology McMaster University Hamilton, Ontario Canada L8S 4M4 905-525-9140x23604 http://socserv.mcmaster.ca/jfox --------------------------------> -----Original Message----- > From: r-help-bounces at stat.math.ethz.ch > [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of > a.menicacci at fr.fournierpharma.com > Sent: Tuesday, March 07, 2006 7:06 AM > To: r-help at stat.math.ethz.ch > Subject: [R] Building tkentry dynamicly > > > > > > > Dear R-users, > > I would like to build N "tkentry" compounds in the same > window, with default text for each. As N is variable I need > to construct them in an iterative way : > > > library(tcltk) > > main<-tktoplevel() > > tktitle(main)<-"My Tool" > > filenames<-c("toto","tata","titi") > N<-length(filenames) > > for (i in 1: N) { > text<-tclVar(filenames[i]) # get a filename (string value) > textField<-tkentry(main,textvariable=text) # build a text field > tkgrid(textField) > } > > The problem is : How to keep references for each tclVar > created, in order to acces to the text modifications > eventually done for each field ? > > > Example : > > (Embedded image moved to file: pic14771.jpg) to > (Embedded image moved to file: pic11538.jpg) > > > Regards. > > > > > > > > Alexandre MENICACCI > Bioinformatics - FOURNIER PHARMA > 50, rue de Dijon - 21121 Daix - FRANCE > a.menicacci at fr.fournierpharma.com > t?l : 03.80.44.76.17