tcltk checkboxes

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Bertrand VIALLE
Messages : 28
Enregistré le : 02 Juil 2007, 12:19

tcltk checkboxes

Messagepar Bertrand VIALLE » 27 Juil 2007, 09:42

Bonjour,

j'aimerais savoir si quelqu'un a déjà utilisé des checkboxes avec le package tcltk. Si oui, j'ai quelques problèmes dans mon code :

Code : Tout sélectionner

library(DBI)
library(RMySQL)
library(tcltk2)
require(tcltk)
tclRequire("BWidget")

tt<-tktoplevel()
   
#choice = table quelconque résultant d'un choix effectué à l'aide d'une #listbox
rs <- dbSendQuery(con, statement = paste("SELECT DISTINCT Recipe FROM",choice))
recipe <- fetch(rs, n = -1)
recipeFinal <- recipe[,1]

tkgrid(tklabel(tt,text="select a recipe"))

cbValue<-list()
cb<-list()
   
sw <- tkwidget (tt,"ScrolledWindow",relief="sunken",auto="none",borderwidth=2)
sf <- tkwidget(sw,"ScrollableFrame")
tcl(sw,"setwidget",sf)
subfID <- tclvalue(tcl(sf,"getframe"))

for (i in 1:length(recipeFinal)){      
      cb[[i]] <- tcl("checkbutton",paste(subfID,".",i,sep=""))
      cbValue[[i]]<-tclVar("0")
      tkconfigure(cb[[i]],variable=cbValue[[i]])
      
      lab <-   tcl("label",paste(subfID,".lab",i,sep=""),text=recipeFinal[i])       
      tkgrid(lab,cb[[i]])
      tkbind(cb[[i]],"<FocusIn>",function() tcl(sf,"see",cb[[i]]))

}

tkpack(sw,fill="both",expand="yes")

OnOK <- function(){
      for(i in (1:length(recipeFinal))){
       cbVal <- as.character(tclvalue(cbValue[[i]]))
            
       if (cbVal=="1")
          tkmessageBox(message="recipe",recipeFinal[i],"selected")
       if (cbVal=="0")
      tkmessageBox(message="recipe",recipeFinal[i],"not selected", icon="warning")
      }
      tkdestroy(tt)
}
OK.but <- tkbutton(tt,text="OK",command=OnOK)
tkgrid(OK.but)
tkfocus(tt)


Je tiens à préciser que l'on m'a aidé pour rédiger ce code, donc j'avoue ne pas saisir à 100% toutes les facettes de ce code.

Plusieurs choses me dérangent :

- Je n'arrive pas à conserver l'affichage de "select a recipe", les checkboxes s'affichent par dessus.
- Le bouton OK ne s'affiche pas.
- J'aimerais comprendre réellement le fonctionnement des scrollframes.

Voilà, si quelqu'un peut m'aider (même partiellement), ce serait sympa.

Merci d'avance.

Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité