IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Checkbox pour création d'un fichier texte


Sujet :

Tkinter Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    zebi.fik
    Inscrit en
    Septembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : zebi.fik

    Informations forums :
    Inscription : Septembre 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Checkbox pour création d'un fichier texte
    Bonjour à tous,

    Je débute en python et j'essaie tant bien que mal d'utiliser des checkbutton pour générer un fichier texte.
    En résumé, si le checkbutton est coché, cela ajoute la ligne correspondante dans un fichier texte. Si le checkbutton n'est pas coché, rien ne se passe.

    Malheureusement, j'ai un problème sur la condition qui permet de déterminer si oui ou non le checkbutton est coché. Je me suis rendu compte que cette condition est basée sur une variable, censé être modifiée par le checkbutton. Je crois comprendre que je ne fais pas appel à la bonne variable (globale au lieu de celle modifiée par la fonction qui créer les checkbutton)

    J'ai défini offvalue des checkbutton comme 'off', mon if test donc si la valeur du checkbutton est différente de off

    Voici une partie du code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    ListeProg = [
    	(Firefox, "Mozilla Firefox", "prog1"),
    	(Chrome, "Google Chrome", "prog2"),
    ]
     
    def create_cb():
    	n = 1
    	for cmdLP, nomLP, numLP in ListeProg :
    		Checkbutton(master, text=nomLP, variable=numLP, onvalue=cmdLP, offvalue='off').grid(row=n, sticky=W)
    		n += 1
    	Button(master, text='Quit', command=master.quit).grid(row= n + 1, column=1, sticky=W, pady=4)
    	Button(master, text='Show', command=txtgen).grid(row= n + 1, column=2, sticky=W, pady=4)
     
    def txtgen():
    	for cmdLP, nomLP, numLP in ListeProg :
    		if numLP != 'off' :
    			with open('outflie.txt', 'a') as f:
    				f.write(cmdLP + "\n")
     
    create_cb()
    Je pense que la logique utilisée pour arriver à mes fins n'est pas bonne, je me complique certainement la tache.

    Est-il possible de faire passer une variable d'une fonction à une autre ? Est-ce la solution la plus simple et/ou la plus logique pour générer ce fichier ?

    Merci par avance,
    Cordialement

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par zebi.fik Voir le message
    Malheureusement, j'ai un problème sur la condition qui permet de déterminer si oui ou non le checkbutton est coché. Je me suis rendu compte que cette condition est basée sur une variable, censé être modifiée par le checkbutton. Je crois comprendre que je ne fais pas appel à la bonne variable (globale au lieu de celle modifiée par la fonction qui créer les checkbutton)
    La variable à utiliser est un StringVar (ou IntVar, ou DoubleVar suivant le cas). Ici, vous passez les chaînes de caractères "prog1", "prog2" qui correspondent probablement à rien.
    Vous avez des exemples d'utilisation de ce widget ici.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    zebi.fik
    Inscrit en
    Septembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : zebi.fik

    Informations forums :
    Inscription : Septembre 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour Wiztricks,

    Oui les chaines de caractères "prog1" & "prog2" ne correspondent à rien.
    En fait, je voudrais que le 1er checkbutton ai comme nom de variable "prog1" et le 2ème 'prog2" pour pouvoir les réutiliser dans la fonction txtgen.

    Si je dois utiliser un StringVar dans le checkbutton, est-il possible de déclarer "prog1" et "prog2" comme étant des StringVar à l'intérieur du tableau ListeProg ? N'est-ce pas implicitement fait puisque elles sont entre quotes ?

    Merci pour le lien, je l'avais déjà parcouru pour créer ces checkbutton justement.

    Merci par avance,
    Cordialement

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par zebi.fik Voir le message
    En fait, je voudrais que le 1er checkbutton ai comme nom de variable "prog1" et le 2ème 'prog2" pour pouvoir les réutiliser dans la fonction txtgen.
    "prog1", "prog2" sont des chaînes de caractères et non des "variables".

    Citation Envoyé par zebi.fik Voir le message
    Si je dois utiliser un StringVar dans le checkbutton, est-il possible de déclarer "prog1" et "prog2" comme étant des StringVar à l'intérieur du tableau ListeProg ? N'est-ce pas implicitement fait puisque elles sont entre quotes ?
    Les xxxVar seront associées à des variables TCL. Vous ne pouvez les créer qu'après avoir démarré TCL via l'appel Tk(). Donc on peut le faire mais, comme ListeProg est apparemment "globale", pas n'importe quand/comment.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. pblme pour recuperer donnee dans fichier texte c++
    Par aerosketchique dans le forum C++
    Réponses: 1
    Dernier message: 11/04/2006, 13h05
  2. [DOS] Commande pour écrire dans un fichier texte
    Par Jeff87-01 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 28/03/2006, 01h04
  3. Création d'un fichier texte
    Par licorne dans le forum Langage
    Réponses: 9
    Dernier message: 25/10/2005, 17h05
  4. [AC97] création d'un fichier texte
    Par pokemoon94 dans le forum VBA Access
    Réponses: 5
    Dernier message: 05/10/2004, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo