Partage
  • Partager sur Facebook
  • Partager sur Twitter

Interface graphique perso en Python

    21 décembre 2014 à 12:56:17

    Bonjour à tous et à toutes

    le but de mon programme que j'ai copié a quelqu'un doit ouvrir une interface graphique perso 

    le vois ci : 

    #!/usr/bin/python

    # -*- coding: iso-8859-1 -*-

    import Tkinter

    class simpleapp_tk(Tkinter.Tk):

      def __init__(self,parent):

             Tkinter.Tk.__init__(self,parent)

        self.parent = parent

             self.initialize()

        def initialize(self):

            pass   

            if __name__ == "__main__":

        app = simpleapp_tk(None)

        app.title('NOUVEAU SUJET')

           app.mainloop()

    Don voila je l ai en enrengistré en (.py) pour type python   

    Le probleme: 

    Vue que c 'est programme copié  et par lequel j ai changer le (tittle) , je l execute avec l invite de commande ;

    il le lit mais veut pas l executer jusqu'au bout .

    Est ce quelqu'un pourrait m aider à resoudre le probleme s'il vous plait ?

    vue que c une copie 

    • Partager sur Facebook
    • Partager sur Twitter
      21 décembre 2014 à 18:15:05

      Salut,

      Merci de mettre le code dans les balises de code la prochaine fois.

      Pour commencer il est plus simple de travailler sur une Frame. Ensuite pour les interfaces graphique en général on fait un 

      from Tkinter import *

      Ca évite de devoir mettre sans cesse le parent à chaque fois que tu utilises une méthode de Tkinter. 

      #!usr/bin/env python
      #-*- coding:utf-8 -*-
      #
      
      from Tkinter import *
      
      class simpleapp_tk(Frame):
      	def __init__(self, parent):
      		Frame.__init__(self, parent) #On initialise les attributs de Frame
      		self.parent = parent
      
              #self.initialize()
      
      	def placementWidgets(self): #Méthode de placement de widgets, comme ça tu fais tout ici
      		#self.tonwidget.grid(row = 0, column = 0)
      		pass
      
      
      if __name__ == "__main__":
      
      	app = Tk()
      	app.title('NOUVEAU SUJET')
      
      	interface = simpleapp_tk(app) #On instancie la class
      	#interface.placementWidgets()
      
      	app.mainloop()



      -
      Edité par InhumanRampage 21 décembre 2014 à 18:18:05

      • Partager sur Facebook
      • Partager sur Twitter
        21 décembre 2014 à 19:40:11

        je  te remercie InhumanRampage mais je ne sais comment on fait pour mettre   les codes dans les balises.
        • Partager sur Facebook
        • Partager sur Twitter
          21 décembre 2014 à 20:12:43

          De rien, et aussi je l'ai pas mis dans le code mais n'oublie pas de positionner la Frame de ta classe, après #interface.placementWidgets(), tu mets interface.grid(row = 0, column = 0) (enfin si tu utilise la méthode de placement grid bien sûr, ne jamais mélanger différents types de placement)

          Tuto balise code

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            21 décembre 2014 à 22:47:27

            Frame ou pas Frame ce code est fonctionnel à partir du moment où l'on respecte l'indentation du code copié...

            import Tkinter
            
            class simpleapp_tk(Tkinter.Tk):
            
                def __init__(self, parent):
            
                    Tkinter.Tk.__init__(self,parent)
            
                    self.parent = parent
            
                    self.initialize()
            
                def initialize(self):
            
                    pass   
            
            if __name__ == "__main__":
            
                app = simpleapp_tk(None)
            
                app.title('NOUVEAU SUJET')
            
                app.mainloop()



            -
            Edité par Anonyme 21 décembre 2014 à 22:47:57

            • Partager sur Facebook
            • Partager sur Twitter
              21 décembre 2014 à 23:20:20

              Certes, je n'ai pas dit le contraire, sauf qu'il est plus facile pour un débutant de travailler sur une Frame (et c'est plus modulable), et qu'il est aussi plus agréable d'importer Tkinter sans faire référence à son parent tout le temps (Tkinter.Frame, etc..). Et quitte à l'aider, autant lui donner les bons outils :)
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                22 décembre 2014 à 0:04:50

                C'est quoi une Frame pour toi, à quoi sert-elle ? Et dans son cas, quel est la véritable plus-value ?

                Il faut savoir adapter selon les situations, et ici je ne vois pas pourquoi je compliquerais l'interface avec la gestion d'une Frame supplémentaire...

                Mais bon si tu veux tu le fais, mais ce n'est ni plus facile, ni une bonne manière, simplement un outil pour organiser sa fenêtre d'une certaine façon.

                • Partager sur Facebook
                • Partager sur Twitter
                  22 décembre 2014 à 0:20:59

                  Je sais qu'il est plus facile de travailler avec une Frame quand on débute, parce que je suis moi-même débutant, et j'ai déjà essayé de travailler directement avec Tk, et ça devient rapidement un merdier, on s'y perd plus facilement :)

                  Et la Frame en question ne complique pas vraiment l'interface lol, mais il est vrai que parfois selon les situations il est plus évident de travailler direct sur Tk, mais encore une fois, il est débutant et je sais par quoi il passe vu que je suis passé par là il n'y a pas si longtemps. Libre à lui de prendre mon conseil ou le tien :) Si pour lui il n'y a aucune différence ou difficulté de travailler sans Frame, et ben ainsi soit-il, mais j'en doute ^^

                  Après si tu insistes qu'il vaut mieux pour lui de passer par Tk, l'expérience prime : quand il y a un problème tu trouves une solution, pas moi. ^^

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    22 décembre 2014 à 9:39:28

                    Après si tu insistes qu'il vaut mieux pour lui de passer par Tk

                    Non je n'insiste pas, je répond juste à son problème... Dans son cas, il veut tester un code copier sur le net. Pour qu'il soit fonctionnel, il a juste à bien respecter l'indentation. Problème résolu, donc.

                    Après utiliser une Frame ou non dépendra sans doute d'un autre code où il créera une interface différente de celle-ci, et dans ce cas on peut le conseiller de différentes manières pour l'aider.

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Interface graphique perso en Python

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown