Partage
  • Partager sur Facebook
  • Partager sur Twitter

placer des objets -Tkinter-

Tkinter

Sujet résolu
    19 février 2013 à 21:55:41

    Bonjour,

    J'ai essayer le module Tkinter seulement je n'arrive pas à placer mes objets aux emplacements que je souhaite.

    je n'ai pourtant pas fait d'erreur de syntaxe ou autre.

    Je pense que le problème vient de grid mais pourquoi ?

    Pourriez vous me dire ce qui cloche dans mon code parce que je suis vraiment bloqué et j'ai commencé il y a très peu de temps:

    définitions:

    from Tkinter import * 
    
    def bouton(fen):
        
        bouton1 = Button(fen, text = 'test',width = 15,height = 1)
        bouton1.grid(row =3, column = 0)
    



    main:

    from Tkinter import *
    from bouton2 import *
    
    fen = Tk()
    
    fen.geometry('750x600')
    bouton(fen)
    fen.mainloop()

     Merci d'avance pour votre aide :)



    -
    Edité par Marty_and_Doc 19 février 2013 à 21:58:33

    • Partager sur Facebook
    • Partager sur Twitter
      24 février 2013 à 22:18:57

      Bonjour! je suppose qu'il place ton bouton tout en haut de la fenêtre, et c'est normal.

      Si tu ne définis pas tes lignes 0 1 et 2, la ligne 3 va être vue comme étant la première ligne.

      Tu peux utiliser rowconfigure pour définir une taille fixe pour tes lignes:

      from Tkinter import *
      fen=Tk()
      fen.rowconfigure((1,2,3),minsize=20)
      boutton=Button(fen, width=10).grid(row=3)
      fen.mainloop()

      avec ça, les colonnes 1,2 et 3 ont toutes une taille de 20 pixels minimum chacune. Même si elles sembles vides.

      Voilà!

      Un lien qui va sûrement t'aider:

      http://ftp-developpez.com/michel-aubry/temp/tutoriels/python/tkinter-8-4-reference-interface-utilisateur-graphique-gui-pour-python/tkinter.pdf

      -
      Edité par baltoo 24 février 2013 à 22:39:12

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        25 février 2013 à 8:41:30

        @baltoo

        C'est correct, mais l'index 0 existe ;)

        • Partager sur Facebook
        • Partager sur Twitter
          25 février 2013 à 23:05:59

          baltoo a écrit:

          Si tu ne définis pas tes lignes 0 1 et 2, la ligne 3 va être vue comme étant la première ligne.

          C'était peut-être pas très claire, mais ce que j'ai écris suggérait qu'elle existait!

          D'ailleurs c'est bien l'une des première chose et l'une des plus importantes que l'on apprend en programmation: on compte toujours à partir de 0.

          Et je ne l'ai pas oublié! ;)

          À + !

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            26 février 2013 à 7:36:29

            Il semblerait que dans ton code l'index 0 manque, maintenant est-ce voulu?
            • Partager sur Facebook
            • Partager sur Twitter
              26 février 2013 à 7:55:52

              Bah en fait c'est pas vraiment important, ici. Le but était juste de montrer que les lignes et colonnes non occupées ne prennent pas de place dans la fenêtre.

              Ce n'était pas spécialement voulu, c'était juste un code à la vas-vite qui permettait de montrer qu'on pouvait configurer la taille des colonnes/lignes grâce à

              row/columnconfigure et ainsi leur faire occuper de la place sans être occupées. Mais c'est vrai que j'aurais peut-être du mettre le 0 dans mon code...

              ou alors j'aurais pu écrire fen.rowconfigure(tuple(range(3)),minsize=20) ce qui aurait suggéré que la ligne 0 existe...

              • Partager sur Facebook
              • Partager sur Twitter
                27 février 2013 à 9:20:11

                merci baltoo pour ton aide , apparemment c'était ça le problème :)

                donc si j'ai bien compris je rajoute 0 a la ligne 3 pour que ce soit plus esthétiques ?

                • Partager sur Facebook
                • Partager sur Twitter
                  27 février 2013 à 14:05:17

                  Oui, et si tu n'as pas envie de t’embêter avec rowconfigure, tu peux toujours faire:

                  Label(fen,text="").grid(row=0)

                  Label(fen,text="").grid(row=1)

                  etc...

                  pour laisser des espaces

                  Mais j'pense pas que ce soit une bonne méthode... :-°

                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 février 2013 à 17:26:47

                    ok merci je pense que je vais prendre la première méthode, elle fait plus propre et elle me fait gagner du temps par rapport a la seconde :)
                    • Partager sur Facebook
                    • Partager sur Twitter

                    placer des objets -Tkinter-

                    × 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