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 :

Objet pas à la bonne place


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 59
    Par défaut Objet pas à la bonne place
    J'ai un problème d'insertion d'un objet hérité d'un Frame.

    Dans un module secondaire j'ai défini une classe Update() de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    from Tkinter import *
     
    class Update(Frame):
        def __init__(self, master =None,table='machin'):
            Frame.__init__(self)
     
    #(etc ...)
     
    if __name__ == '__main__':
        root=Tk()
        Update(root).pack()
        root.mainloop()
    A l'exécution, la fenêtre s'ouvre et tout marche au poil.

    Dans le module "principal" (une barre de menus), j'ai défini une fonction pour ouvrir un objet Update() dans une fenêtre secondaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #(...)
     
        def modifie(self,table):
            fen=Toplevel(self)
            upd=Update(fen,table)
            upd.pack()
     
    if __name__ == '__main__':
        root=Tk()
        MenuBar(root).pack()
        root.mainloop()
    Et là ça marche aussi, SAUF QUE la fenêtre Toplevel() s'ouvre vide ET QUE l'objet Update() s'insère dans la fenêtre mère (celle de la barre de menu) -où d'ailleurs il fonctionne à part ça correctement- ...

    Qu'est-ce qui provoque cet effet ? Où est mon erreur ?

    Merci de vos réponses, toujours pertinentes .

    JD

  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,
    Ben... les objets sont construits suivant une "arborescence" et le paramètre "master" permet de dire à quoi sera rattaché l'objet qu'on va créer.
    Par défaut, c'est "root" - la chose retournée par Tkinter.Tk() -.
    Donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class Update(Frame):
        def __init__(self, master =None,table='machin'):
            Frame.__init__(self, master)
    devrait faire l'affaire.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 59
    Par défaut
    Bon... encore un truc que j'avais pas compris .

    Merci

    JD

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

Discussions similaires

  1. Image qui n'est pas à la bonne place sous IE
    Par nanard74 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 10/11/2011, 00h04
  2. page footer pas à la bonne place dans sous rapport
    Par Invité dans le forum Jasper
    Réponses: 2
    Dernier message: 13/07/2007, 12h30

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