Partage
  • Partager sur Facebook
  • Partager sur Twitter

Incrustation d'un bouton dans tkinter python 3.3

Sujet résolu
    20 mars 2015 à 14:19:08

    Bonjour,

    je suis en TS et j'aimerai réaliser un travail sur python.

    En effet, je me lance sur un projet de bataille navale sur tkinter et j'ai un petit problème.

    L'idée est de réaliser un menu avec une photo (format GIF) et d'y incruster des "boutons". En gros je voudrai pouvoir cliquer sur le texte dans une image afin de commencer la partie.

    Si ce n'est pas clair dites le moi je ne me suis pas très bien expliqué je crois ^^

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      20 mars 2015 à 14:24:39

      c'est quoi le problème?
      • Partager sur Facebook
      • Partager sur Twitter
        20 mars 2015 à 14:34:27

        Le problème est que je voudrai mettre du texte sur l'image, puis que ce texte soit "cliquable" afin de rediriger le joueur vers le jeu.

        En gros créer un texte faisant office de bouton.

        -
        Edité par Romain29r 20 mars 2015 à 14:36:06

        • Partager sur Facebook
        • Partager sur Twitter
          20 mars 2015 à 14:49:17

          Et ton code ressemble à quoi pour le moment? T'as essayé de faire quoi? Qu'est-ce qui ne marche pas?

          • Partager sur Facebook
          • Partager sur Twitter
            20 mars 2015 à 15:25:57

            Salut

            Pour faire ceci il faut gérer à la fois les événements et les canvas, c'est assez chiant à faire. (Surtout si tu veux faire un effet de "clique")

            -
            Edité par InhumanRampage 20 mars 2015 à 15:26:25

            • Partager sur Facebook
            • Partager sur Twitter
              20 mars 2015 à 18:01:00

              Oui en fait j'aimerai créer une "zone texte" qui ramènerai à une fonction "démarrer partie"

              Pour l'instant j'ai mis l'image dans le canvas mais je n'arrive pas à mettre le texte "par dessus" l'image. Je pense qu'il est caché parce que quand je fais la zone texte il n'y a aucune erreur mais le texte ne s'affiche pas.

              L'effet de clique est accessoire, j'aimerai juste déjà pouvoir cliquer sur le texte pour m'amener à une autre fenêtre ce qui serai déjà pas mal ^^

              • Partager sur Facebook
              • Partager sur Twitter
                20 mars 2015 à 18:11:25

                Pour ouvrir une nouvelle fenêtre tu as la class Toplevel de tkinter qui te permet de faire ça.

                -
                Edité par InhumanRampage 20 mars 2015 à 18:13:57

                • Partager sur Facebook
                • Partager sur Twitter
                  20 mars 2015 à 18:42:40

                  Merci mais en fait je voudrai déjà pouvoir juste cliquer sur un texte afin de qu'une action quelconque se fasse. Mon problème n'est pas vraiment de faire apparaitre une nouvelle fenêtre mais plutôt de cliquer sur une zone texte . Et comme je l'ai mentionné tout à l'heure, le texte doit se trouver caché je ne sais où derrière l'image...
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    21 mars 2015 à 17:12:13

                    Merci oldProgrammer maintenant j'arrive à pouvoir détecter le clic mais il reste encore le problème d’insérer une zone texte dans l'image. :/
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      21 mars 2015 à 17:21:06

                      Montre ton code que tu essaies de faire, car via create_text, c'est une image qui se superpose sur une autre, donc je vois pas trop la difficulté.

                      Sur un petit code, essai de créer une image dans un canvas avec create_image et d'écrire via create_text dessus, mais très simple le code.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 mars 2015 à 17:35:37

                        J'ai ça

                        can1.create_text(0,0, text='ESSAI',fill='red')



                        -
                        Edité par Romain29r 21 mars 2015 à 17:55:23

                        • Partager sur Facebook
                        • Partager sur Twitter
                          21 mars 2015 à 18:00:26

                          Comme ceci:

                          !/usr/bin/env python3

                          -- coding: utf-8 --

                          from tkinter import *

                          fen = Tk() gif_img = PhotoImage(file='dinosaur.gif')

                          fond = Label(image=gif_img) fond.image = gif_img fond.pack()

                          text_label=Label(fen, text='Ne pas cliquer sur ce bouton!',fg='red') text_label.place(x=0, y=20)

                          fen.mainloop()

                          </pre> Tu remarqueras que le label a un fond blanc et non transparent. C'est malheureusement une limitation de tkinter.

                          -
                          Edité par Dan737 21 mars 2015 à 18:01:13

                          • Partager sur Facebook
                          • Partager sur Twitter
                            21 mars 2015 à 18:21:28

                            Merci oldProgrammer et Dan737! Par contre comme vous le dites le Label est un fond blanc :euh:

                            Donc du coup, je pense que ça ne va donner un bon rendu :/

                            Je vais essayer de trouver une autre technique au cas où parce que j'aimerai vraiment faire un menu dans l'image :)

                            Merci en tout cas. Je vous tient au courant prochainement si j'ai des pistes

                            • Partager sur Facebook
                            • Partager sur Twitter
                              21 mars 2015 à 18:32:34

                              Au pire tu fais un tour sur photoshop non ? C'est contourner le problème mais ça fonctionnera plus vite dans ton cas. Tu créé ton image de fond, en suite tu ajoutes des boutons qui reprennent le fond et comme ça tu n'as plus qu'à les mettres au bon endroit dans ton code et de faire un clique dessus.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                22 mars 2015 à 9:49:46

                                Moi je dirais que le plus simple serait de dessiner déjà tes boutons dans ton image, et de simplement implémenter une petite fonction qui lors d'un clic de souris, vérifie si le clic se passe sur l'un des bouton, et si oui, lancer une fonction quelconque.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  29 mars 2015 à 19:16:39

                                  Merci pour les conseils mais j'ai en fait crée des des petits images qui contiennent le texte. C'est le plus simple je trouve.

                                  Maintenant je cherche à faire la boucle "if" afin de dès que l'on clique sur un élément, une action se passe.

                                  Merci en tout cas :)

                                  Ps: Désolé de n'avoir pas répondu plus tôt, je n'avais pas internet ^^

                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Incrustation d'un bouton dans tkinter python 3.3

                                  × 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