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 :

Modifier un canvas situé hors d'un ttk.notebook [Python 3.X]


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 36
    Par défaut Modifier un canvas situé hors d'un ttk.notebook
    Bonjour,

    Je suis en train de faire des tests pour modifier l'interface de mon application en intégrant des onglets via tkinter.ttk.Notebook mais je bute sur un problème d’héritage (probablement).

    J’essaie depuis un bouton situé dans une frame d'un notebook de root (A moins que ce soit une frame dans une frame dans un notebook de root) de modifier un canvas dans une frame de root.

    Si quelqu'un a une idée pour me débloquer ? merci !

    edit : bon si je cherche à atteindre root... j'ai qu'a appeler root en fait vu qu'il est défini la root=imgConvertApp().

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Ce que vous racontez n'a pas trop de sens et le code montre que vous débutez en POO.

    Partons avec 2 classes: A et B.
    Si une instance de A doit accéder à une instance de B, le plus simple sera de créer le b (instance de B) avant l'instance de A pour le lui passer en paramètre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    b = B(...)
    a = A(..., b,...)
    L'__init__ du a sauvegarde le b dans un attribut genre self.b.
    Côté B, l'__init__ peut créer un objet Canvas et le stocker dans un attribut genre self.canvas.

    Un peu plus tard, si la méthode X de a doit accéder à ce canvas, il pourra le faire via self.b.canvas.

    Et si le b doit être crée après le a, il faudra une méthode set_b (dans A) permettant de définir le self.b.

    Notez que la POO n'a rien à voir avec Python et qu'on doit faire un apprentissage spécifique pour l'utiliser: python dit juste comment créer un objet via le mot clef "class" et la mise en œuvre de l'héritage.

    Notez aussi que lorsque vous programmez avec tkinter, vous n'avez pas besoin de POO (contrairement à d'autres GUI). Si vous maîtrisez la POO, c'est mieux car on se retrouve vite avec un tas d'objets, mais on peut faire sans.

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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Modifier un texte situé entre deux <br>
    Par vinshe dans le forum Langage
    Réponses: 5
    Dernier message: 17/12/2014, 20h32
  2. Comment modifier du contenu situé dans un autre ?
    Par CinePhil dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/08/2012, 22h28
  3. [MySQL] viewer et deleter de fichiers situé hors public_html
    Par dancom5 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 03/02/2012, 08h47
  4. Afficher image située hors du rep web du serveur
    Par Marquo2 dans le forum Langage
    Réponses: 1
    Dernier message: 17/06/2009, 17h58
  5. Réponses: 6
    Dernier message: 13/03/2008, 10h57

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