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 :

Placement d'une classe dérivée d'un widgte text and un Widget PMW Notebook


Sujet :

Tkinter Python

  1. #1
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 91
    Points
    91
    Par défaut Placement d'une classe dérivée d'un widgte text and un Widget PMW Notebook
    Bonjour, j'ai dérivé une classe depuis la classe Scrolledtext. J'ai ensuite pris l'exemple de Notebook donné dans les demo de PMW. Si je met un Scrolledtext dans l'un des onglets, pas de problème il est bien intégré à l'onglet ("helpers"). Si je tente de mettre une instance de ma classe dérivée du Scrolledtext, cette instance est ajoutée "en bas du Notebook", donc en dehors de mon onglet "images" même si j'ai spécifié de le mettre dans cet onglet.
    Pouvez vous m'aider à intégrer mon instance de classe dans l'onglet. Merci d'avance.

    Code de l'exemple:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    title = 'Pmw.NoteBook demonstration'
     
    # Import Pmw from this directory tree.
    import sys
    sys.path[:0] = ['../../..']
     
    import Tkinter
    import Pmw
    from ScrolledText import *
     
    class Fenseq(ScrolledText):
      '''Fenêtre d'affichage de la séquence'''
      def __init__(self, parent, lsize):
        ScrolledText.__init__(self, font = "courier")
        self.parent = parent
        self.lsize = lsize
        self.pack(expand =1, fill='both')
        self.focus_set()
        self.pack
     
    class Demo:
        def __init__(self, parent):
    	# Create and pack the NoteBook.
     
            notebook = Pmw.NoteBook(parent)
            notebook.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
     
            # Add the "Appearance" page to the notebook.
            page = notebook.add('Appearance')
            notebook.tab('Appearance').focus_set()
     
            # Create the "Toolbar" contents of the page.
            group = Pmw.Group(page, tag_text = 'Toolbar')
            group.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
            b1 = Tkinter.Checkbutton(group.interior(), text = 'Show toolbar')
            b1.grid(row = 0, column = 0)
            b2 = Tkinter.Checkbutton(group.interior(), text = 'Toolbar tips')
            b2.grid(row = 0, column = 1)
     
            # Create the "Startup" contents of the page.
            group = Pmw.Group(page, tag_text = 'Startup')
            group.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
            home = Pmw.EntryField(group.interior(), labelpos = 'w',
                label_text = 'Home page location:')
            home.pack(fill = 'x', padx = 20, pady = 10)
     
            # Add two more empty pages.
            page = notebook.add('Helpers')
            text =  ScrolledText(page, width = 100)
            text.pack()
            page = notebook.add('Images')
            text =  Fenseq(page, 50)
     
            notebook.setnaturalsize()
     
    ######################################################################
     
    # Create demo in root window for testing.
    if __name__ == '__main__':
        root = Tkinter.Tk()
        Pmw.initialise(root)
        root.title(title)
     
        widget = Demo(root)
        exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy)
        exitButton.pack()
        root.mainloop()

  2. #2
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    bonjour, essaie comme ca!
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    title = 'Pmw.NoteBook demonstration'
    
    # Import Pmw from this directory tree.
    import sys
    sys.path[:0] = ['../../..']
    
    import Tkinter
    import Pmw
    from ScrolledText import *
    
    class Fenseq(ScrolledText):
      '''Fenêtre daffichage de la séquence'''
      def __init__(self, parent, lsize):
        ScrolledText.__init__(self, font = "courier")
        self.parent = parent
        self.lsize = lsize
        self.pack(expand =1, fill='both')  
        self.focus_set()
        ##self.pack Deux méthodes de placement, c'est pas bon, surtout si la dernière n'est pas bonne en syntaxe (Ici, il manque les "()")
    
    class Demo:
        def __init__(self, parent):
    	# Create and pack the NoteBook.
    	      
            notebook = Pmw.NoteBook(parent)
            notebook.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
    
            # Add the "Appearance" page to the notebook.
            page = notebook.add('Appearance')
            notebook.tab('Appearance').focus_set()
    
            # Create the "Toolbar" contents of the page.
            group = Pmw.Group(page, tag_text = 'Toolbar')
            group.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
            b1 = Tkinter.Checkbutton(group.interior(), text = 'Show toolbar')
            b1.grid(row = 0, column = 0)
            b2 = Tkinter.Checkbutton(group.interior(), text = 'Toolbar tips')
            b2.grid(row = 0, column = 1)
    
            # Create the "Startup" contents of the page.
            group = Pmw.Group(page, tag_text = 'Startup')
            group.pack(fill = 'both', expand = 1, padx = 10, pady = 10)
            home = Pmw.EntryField(group.interior(), labelpos = 'w',
                label_text = 'Home page location:')
            home.pack(fill = 'x', padx = 20, pady = 10)
    
            # Add two more empty pages.
            page = notebook.add('Helpers')
            text =  ScrolledText(page, width = 100)
            text.pack()
            page = notebook.add('Images')
            text =  Fenseq(page, 50)
     
            notebook.setnaturalsize()
    
    ######################################################################
    
    # Create demo in root window for testing.
    if __name__ == '__main__':
        root = Tkinter.Tk()
        Pmw.initialise(root)
        root.title(title)
    
        widget = Demo(root)
        exitButton = Tkinter.Button(root, text = 'Exit', command = root.destroy)
        exitButton.pack()
        root.mainloop()
    [/QUOTE]

    ++

  3. #3
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 91
    Points
    91
    Par défaut Ca ne marche toujours pas
    Désolé, en effet il y avait deux fois la méthode pack et l'une avec problème de syntaxe. Malheureusement cela n'a pas résolu mon problème. J'avais testé plusieurs essais de code histoire de vérifier un peu toutes les possibilités avant d'envoyer un post. En nettoyant, j'avais oublié un pack "résiduel"...

    Cela veut il dire qu'il n'y a pas de solution à mon problème? Le plus drole, c'est que si dans le code, on remplace l'instanciation de ma classe dérivée du Scrolledtext par un Scrolledtext classique, ca marche...

  4. #4
    Membre averti
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 290
    Points : 388
    Points
    388
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Fenseq(ScrolledText):
      '''Fenêtre d'affichage de la séquence'''
      def __init__(self, parent, lsize):
        ScrolledText.__init__(self, parent, font = "courier") 
        self.parent = parent
        self.lsize = lsize
        self.pack(expand =1, fill='both')
        self.focus_set()
    ça devrait fonctionner

  5. #5
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 160
    Points : 91
    Points
    91
    Par défaut
    Merci, en effet, ca marche maintenant.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/03/2007, 01h06
  2. problème d'accès dans une classe dérivée!
    Par chrono23 dans le forum C++
    Réponses: 47
    Dernier message: 10/10/2006, 11h22
  3. Réponses: 2
    Dernier message: 06/12/2005, 09h41
  4. Réponses: 4
    Dernier message: 20/11/2005, 05h48
  5. Déterminer le type d'une class dérivée
    Par LDDL dans le forum MFC
    Réponses: 3
    Dernier message: 10/12/2004, 17h36

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