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 :

Changer un label associé à un fichier tkt


Sujet :

Tkinter Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé de référencement
    Inscrit en
    Septembre 2018
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Chargé de référencement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2018
    Messages : 61
    Points : 33
    Points
    33
    Par défaut Changer un label associé à un fichier tkt
    Bonjour, juste une petite question, j'ai ce petit bout de code qui est dans un frame+canvas, et avec un bouton plus tard je veux localiser un mot comme "Diffusion" dans mon fichier txt (composé que de mots ligne par ligne) et modifié celui-ci, pour moi ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #fonction actionner par un bouton dans le root
    def replace(ligne,varP,labelP):
        varP=StringVar(frame du code au dessus, text='DiffusionOk')
        if "Diffusion" in ligne:
            labelP.config(textvariable=varP)
    ....
    #code dans le frame+canvas:
    input = open('precipitation_diffusion_inputHMI1.txt','rt')
    for ligne in input.read().splitlines():
        ligne=ligne.split()
        varP=StringVar(fr,ligne)
        labelP=Label(fr,textvariable=varP)
        labelP.grid(sticky=N+E)
    mais ça ne marche pas, pourquoi ? merci beaucoup

  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 778
    Points
    36 778
    Par défaut
    Salut,

    Citation Envoyé par TNema Voir le message
    mais ça ne marche pas, pourquoi ?
    Parce que la StringVar crée dans la fonction est déréférencée à sa sortie.
    Ça marcherait si vous changiez seulement le "text" ou si vous aviez modifié le contenu de la StringVar associée au Label lors de sa création (ce qui fait l'intérêt d'avoir ce genre de variables).

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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chargé de référencement
    Inscrit en
    Septembre 2018
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Chargé de référencement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2018
    Messages : 61
    Points : 33
    Points
    33
    Par défaut
    la StringVar crée dans la fonction est déréférencée à sa sortie.
    je ne comprend pas très bien.

    si on modifie la stringVar directement ça fait quelque chose comme ça du coup ?
    je ne vois vraiment pas.. pourtnt ça doit être hyper simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    def replace(varP):
       if varP.get() == "Diffusion":
             varP.config(fr,"DiffusionOk")
     
    input = open('precipitation_diffusion_inputHMI1.txt','rt')
    for ligne in input.read().splitlines():
        ligne=ligne.split()
        varP=StringVar(fr,ligne)
        labelP=Label(fr,textvariable=varP)
        labelP.grid(sticky=N+E)

  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 778
    Points
    36 778
    Par défaut
    Citation Envoyé par TNema Voir le message
    je ne vois vraiment pas.. pourtnt ça doit être hyper simple
    Et pourquoi ne pas commencer par utiliser un Label sans textvariable?
    Puis, vous essayez de découvrir l'intérêt d'avoir ce genre de variable et vous apprenez à les utiliser proprement. tutos et documentation sont là pour çà.

    Là vous écrivez juste n'importe quoi: çà ne peut pas marcher...
    Et même si la solution est simple, si vous utilisez des objets sans avoir pris le temps de comprendre leur mode d'emploi, on peut vous donner un coup de pouce pour continuer mais c'est toute la conception de votre application qui est certainement à revoir: çà ne sert à rien.

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

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chargé de référencement
    Inscrit en
    Septembre 2018
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Chargé de référencement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2018
    Messages : 61
    Points : 33
    Points
    33
    Par défaut
    Oui j'ai écrit trop vite là, effectivement ça ne veut rien dire.
    Citation Envoyé par wiztricks Voir le message
    Et pourquoi ne pas commencer par utiliser un Label sans textvariable?
    J'ai déjà essayé une chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    def replace(labelP):
        if labelP == Label(fr,text="Diffusion"):
            labelP.config(text="DiffusionOk")
     
    input = open('precipitation_diffusion_inputHMI1.txt','rt')
    for ligne in input.read().splitlines():
        ligne=ligne.split()
        labelP=Label(fr,text=ligne)
        labelP.grid(sticky=N+E)
    "
    Pour moi ça c'est logique, p-e pas dans le langage python, mais ça veut bien dire que si j'ai un label avec le text ="Diffusion" alors je change le text de ce label en "DiffusionOk"

  6. #6
    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 778
    Points
    36 778
    Par défaut
    Citation Envoyé par TNema Voir le message
    Pour moi ça c'est logique, p-e pas dans le langage python, mais ça veut bien dire que si j'ai un label avec le text ="Diffusion" alors je change le text de ce label en "DiffusionOk"
    Si vous aviez appris à relire/comprendre les instruction que vous demandez à Python d’exécuter, vous sauriez que vous comparez LabelP (qui est peut être un Label ayant pour texte "Diffusion") à un autre Label créé avec le texte "Diffusion" dedans.

    Un peu de pratique (lancez la console Python, testez pour visualiser le résultat), vous montrerait que le résultat de la comparaison est faux (et un peu de lecture des tutos vous expliquerait pourquoi ce sera toujours faux).

    Vous avez votre logique... apprendre à la traduire dans un langage de programmation tel que Python est tout l'intérêt des tutos.

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

Discussions similaires

  1. Changer l'association de fichiers
    Par jul62 dans le forum Eclipse
    Réponses: 4
    Dernier message: 08/08/2011, 14h15
  2. Réponses: 5
    Dernier message: 28/04/2004, 15h20
  3. Comment changer des mots dans un fichier?
    Par ptitbonum dans le forum Linux
    Réponses: 5
    Dernier message: 07/04/2004, 23h42
  4. [SHELL] Icônes associées à des fichiers
    Par agh dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 09/04/2003, 17h04
  5. changer l'adresse d'un fichier...
    Par cava dans le forum C
    Réponses: 6
    Dernier message: 05/06/2002, 12h22

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