pb avec tcltk

Questions ne rentrant pas dans les rubriques ci-dessus.

Modérateur : Groupe des modérateurs

Sébastien Hamel
Messages : 71
Enregistré le : 11 Mai 2006, 08:00

pb avec tcltk

Messagepar Sébastien Hamel » 10 Juil 2006, 08:56

Mon pb est le suivant:
J'ai un programme AssoClasse qui me construit une listbox de taille=NbreClasse (exemple=4) & composé des noms définit dans Name, par exemple j'ai 4 classes dans Name (terre, sable, bois, herbe).
En fonction de ma séléction avec la souris sur cette liste, je vais associer un fichier avec le nom sélectionner dans la listbox.
J'aimerais que ce programme me retourne le nom sélectionné, par exemple sable si j'ai sélectionné sable & ainsi de suite...

Voici mon code "provisoire":

AssoClasse <- function () {

tt<-tktoplevel()
tkgrab.set (tt)
tl<-tklistbox(tt, height=NbreClasse, selectmode="single", background="white")
tkgrid(tklabel(tt, text="Choix du nom de classe:"))
tkgrid(tl)
asso <- as.vector(Name)
for (i in (1:NbreClasse)) {
tkinsert(tl, "end", asso[[i]])
}
tkselection.set(tl, 0)

OnOK <- function() {
assoChoice <- asso[as.numeric(tkcurselection(tl))+1]
tkdestroy(tt)
msg <- paste("Le fichier ", LISTCODEPI [1], extens ," est associé au nom de classe ", assoChoice, sep="")
ReturnVal <- tkmessageBox(title="Association fichier <-> classe", message=msg)

}

OK.but <-tkbutton(tt,text=" OK ", command=OnOK)
tkgrid(OK.but)
tkfocus(tt)
tkwait.window(tt)
}

Pour accéder à la valeur de la classe retourné souhaité, je sais que c'est assoChoice qu'il faut que je retourne, mais je n'arrive pas à y accéder ou à l'afficher car cet objet se trouve dans OnOk function....

Comment dois-je faire pour que mon programme l'affiche distinctement?

J'ai essayer d'écrire en dehors de OnOk function assoChoice <- asso[......
mais ca ne marche pas!...

Romain François
Messages : 42
Enregistré le : 08 Déc 2005, 19:23
Contact :

Messagepar Romain François » 11 Juil 2006, 07:04

Bonjour,

C'est une réponse rapide, je n'ai pas essayé le code fourni ...

Pour accéder à la valeur de la classe retourné souhaité, je sais que c'est assoChoice qu'il faut que je retourne, mais je n'arrive pas à y accéder ou à l'afficher car cet objet se trouve dans OnOk function....


Dans ce cas, il faut enregistrer assoChoice plus haut avec l'opérateur de super-assignement : <<-

Code : Tout sélectionner

...
 assoChoice <<- asso[as.numeric(tkcurselection(tl))+1]
...


Romain
--
Romain François
Consultant R Indépendant
http://romainfrancois.blog.free.fr

Sébastien Hamel
Messages : 71
Enregistré le : 11 Mai 2006, 08:00

Messagepar Sébastien Hamel » 11 Juil 2006, 08:45

Merci de ta réponse, je viens tout juste de le trouver & ensuite il suffit de faire un return (assoChoice) & le tour est jouer!...
Merci encore...

J'aurais une autre question qui me paraît plus ambigue:

J'ai besoin d'enregistrer une liste & un fichier '.txt' dans un répertoire autre que le répertoire courant de la console R. Pour ce, je pense qu'il faut utiliser la library (ttool) & la fonction import_data.
Le problème c'est que dans cette fonction, je ne peux préciser aucun argument, donc je ne peux pas dire que la liste à enregistrer est dans la liste nommée ZonEtude ou le fichier.txt est dans l'objet CoordEtude car cette fonction ne demande aucun argument!!

Aurais-tu une autre façon d'enregistrer des données ou aurais-tu une idée avec ttool?
Un exemple si tu as une réponse pourrais m'aider à comprendre.

Merci


Retourner vers « Archives : Autres »

Qui est en ligne

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