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 :

Menu "Aide" Tkinter


Sujet :

Tkinter Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 70
    Points : 52
    Points
    52
    Par défaut Menu "Aide" Tkinter
    Bonjour, bonjour !

    Voila, j'ai developpé une IHM en python/Tkinter.
    J'aimerais maintenant m'attaquer a la rédaction d'un petit manuel d'utilisateur dans la partie "AIde" (Menu Aide) de cette IHM.
    Je voulais savoir si vous aviez des tuto/exemples sur la façon dont je dois m'y prendre?
    L'idéal serait un menu fixe sur la gauche qui permet d'aller directement aux sections en question et puis sur la partie droite les descriptions relatives bref un petit menu d'aide quoi !

    Je vous met donc à contribution ... Quel feignant !
    Je vous remercie pour vos futures réponses !

    Amicalement,

    TeqPAF

    Edit : Ce n'est pas l'utilisation du widget menu que je cherche... C'est création d'une fenêtre avec un sommaire en partie gauche et du texte en partie droite mais je ne vois pas comment m'y prendre !
    Mon bouton "Aide" est lui dans ma partie déroulante dans ma barre menu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    menuAide = Tix.Tkinter.Menubutton(self, text ='Aide')
            menuAide.pack(side =Tix.Tkinter.LEFT)

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 70
    Points : 52
    Points
    52
    Par défaut
    Bon après moultes recherches...

    J'ai pondu un "truc" qui ne me plait pas mais qui marche....
    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
    # -*- coding: iso-8859-1 -*-
    import Tix
     
    class Help():
        def __init__(self):
            root = Tix.Tk() 
            self.varcombo = Tix.StringVar() 
            combo = Tix.ComboBox(root, editable=1, dropdown=1, variable=self.varcombo, command = self.Affiche)
            combo.entry.config(state='readonly')  
            combo.insert(0, "I- Introduction") 
            combo.insert(1, "II- Pouet")
            combo.insert(2, '     II.1- Blabla')
            combo.insert(3, '     II.2- Bliblou')
            #...
            combo.pack()
            #Creation d'un label qui affiche les parties sélectionnées
            self.label = Tix.Tkinter.Label(text = 'I- ')
            self.label.pack(side=Tix.BOTTOM, expand=True, fill=Tix.BOTH)
     
            root.mainloop()
     
        def Affiche(self, evt):
            partie = self.varcombo.get()
            partie = partie.split('-')[0].replace(' ', '')
            self.ModifLabel(partie)
     
        def ModifLabel(self, partie):
            #Tix.Tkinter.Label.clipboard_clear(self.label)
            self.label.config(text = partie)
     
     
    if __name__ == '__main__':
        monHelp = Help()
    J'utilise une comboBox pour mon sommaire et quand je choisis la partie que je veux, je la réécrit dans mon label...
    Je vais creuser un peu parceque bon au final je n'ai pas une vue d'ensemble sur le sommaire comme je souhaitais (un sommaire a gauche qui, en cliquant, me donne accès aux parties en question).

    Si vous avez une meilleure solution je suis preneur !!

    TeqPAF

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 70
    Points : 52
    Points
    52
    Par défaut
    Re-bonjour pour ceux qui m'ont lu aujourd'hui et bonjour aux autres !

    Je suis de retour pour vous jouer un mauvais tour toussa toussa...
    J'ai finalement opté (d'autres propositions sont le bienvenu !) pour la solution:
    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
    # -*- coding: iso-8859-1 -*-
    import Tix
     
    class Help():
        def __init__(self):
            self.IHM()
     
        def IHM(self):
            root = Tix.Tk()
            root.grid_rowconfigure(0, weight=1)
            root.grid_columnconfigure(0, weight=1)
            #Sommaire
            self.varcombo = Tix.StringVar() 
            combo = Tix.ComboBox(root, editable=1, dropdown=1, variable=self.varcombo, command = self.Affiche)
            combo.entry.config(state='readonly')  ## met la zone de texte en lecture seule
            combo.insert(0, "I- Introduction a l'atelier MCO") 
            combo.insert(1, "II- Module Concatenation")
            combo.insert(2, '     II.1- Initialisations')
            combo.insert(3, '     II.2- PreRequis')
            #...
            combo.grid(row=0, column=0, sticky='nswe')
     
            #Page
            ## Le canvas
            cnv = Tix.Tkinter.Canvas(root)
            cnv.grid(row=1, column=0, sticky='nswe')
            ## Les scrollbars
            hScroll = Tix.Scrollbar(root, orient=Tix.HORIZONTAL, command=cnv.xview)
            hScroll.grid(row=2, column=0, sticky='we')
            vScroll = Tix.Scrollbar(root, orient=Tix.VERTICAL, command=cnv.yview)
            vScroll.grid(row=1, column=2, sticky='ns')
            cnv.configure(xscrollcommand=hScroll.set, yscrollcommand=vScroll.set)
            ## Le Frame, dans le Canvas, mais sans pack ou grid
            self.frm = Tix.Tkinter.Frame(cnv)
            ## Les labels et entrys dans le frame
            partie = 'I'
            self.ModifLabel(self.frm, partie)
            ## Pour etre sur que les dimensions sont calculées
            self.frm.update()
            ## Création de la window dans le Canvas
            cnv.create_window(0, 0, window=self.frm, anchor=Tix.NW)
            ## La scrollregion est la boite englobante pour tout ce qu'il y a dans le Canvas
            cnv.configure(scrollregion=cnv.bbox(Tix.ALL))
     
            #C'est parti!
            root.mainloop()
     
        def Affiche(self, evt):
            partie = self.varcombo.get()
            partie = partie.split('-')[0].replace(' ', '')
            self.ModifLabel(self.frm, partie)
     
        def ModifLabel(self, frm, partie):
            for i in range(50):
                self.label = Tix.Tkinter.Label(frm, text='Label_'+partie+'_%s: ' % i)
                self.label.grid(row=i, column=0)
     
    if __name__ == '__main__':
        monHelp = Help()
    Le code est un code de test pour l'instant et il marche bien...
    J'ai bidouillé pour intégrer une scrollbar a mon label (ouaaaiiiiis ).
    Et maintenant, .............................................
    ..................................................................
    ...
    J'ai BIEN SUR un petit probleme :
    Quand je met ma fenetre en plein écran, quasiment rien ne se passe...
    J'ai ma combobox qui s'élargi a la taille de l'écran mais ne se met pas en haut, j'ai mon canvas qui reste tout en bas bref un truc totu moche...

    Quelqu'un saurait-il pourquoi j'ai ce problème?

    Merfi

    TeqPAF

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 70
    Points : 52
    Points
    52
    Par défaut
    bonjour bonjour,

    Eh bien je vais continuer a poser mes questions dans l'espoir qu'une ame charitable vienne me sauver de mon naufrage...

    La question précédente est toujours d'actualité !
    Ceci dit j'en ai pleeeeeeeeeeeeeeeeeein d'autres !

    Donc tout d'abord je voulais savoir si il était possible sous Tix/Tkinter de créer des liens entre parties?
    C'est a dire une partie de texte qui, en cliquant dessus, va m'envoyer vers une autre partie (pour une fonction recherche).

    Est ce qu'il y a un moyen de modifier la police d'une partie d'un label?
    Je ne veux pas modifier toute la police, ça j'ai déja fait avec font et tkFont mais seulement une partie (pour ma fonction recherche surlignage ou changement de couleur du mot cherché)

    Une dernière question assez urgente encore :
    Dans mon code (afin d'intégrer les scrollbar) j'ai créé un canevas contenant les scrollbar et une frame qui contient un label.
    Mais lorsque je définit les tailles de ces widget, le canevas est en pixel, le label est en caractere...
    Est ce qu'il y a possibilité de savoir le nombre de pixel que fait un caractère? Est-ce qu'il y a moyen de forcer width et height a prendre une valeur en pixel?..

    Merci pour vos futures réponses (haaaaaaaaaaaaaaaaaaaaa espoir quand tu nous tiens) !

    TeqPAF

  5. #5
    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,
    Pourquoi ne pas utiliser 2 widgets Text, en gérant la navigation avec les tags ?

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