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 :

Problème de Scrollbars et d'images avec Tkinter


Sujet :

Tkinter Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Non-informaticien
    Inscrit en
    Août 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non-informaticien

    Informations forums :
    Inscription : Août 2013
    Messages : 37
    Points : 17
    Points
    17
    Par défaut Problème de Scrollbars et d'images avec Tkinter
    Bonjour,

    je réalise en ce moment une interface assez minimaliste en Tkinter...minimaliste, mais en essayant d'y mettre une image de fond et quelques scrollbars.

    Voici mon code :

    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
     
      def __init__(self):
    #Import des bases#Créer la racine
        self.root = tkinter.Tk()
        self.root.title("[Titre]")
        self.police=tkinter.font.Font(size=14, family='Impact')
        self.root.configure(height=400, width=400)
        self.canvas = Canvas(width=400, height=400)
        self.canvas.pack() 
    #Image de fond  
        Fond=tkinter.PhotoImage(file=r"[Chemin de l'image]")
        self.root.Fond=Fond
        self.canvas.create_image((0,0), image=self.root.Fond, anchor='center')
    #Boite d'entrée
        self.numgrid=0
        self.Entree = tkinter.Frame(self.canvas, relief=tkinter.GROOVE, bd=2, width=150)
        self.Entree.grid(row=self.numgrid)
        self.numgrid=self.numgrid+1
    #Boite d'entrée pour la requête initiale
        self.numgrid=self.numgrid+1
        self.entreeRequete = tkinter.Text(self.Entree, relief=tkinter.GROOVE, bd=2, width=150, height=2)
        self.entreeRequete.grid(row=self.numgrid)
        self.numgrid=self.numgrid+1
    #Boîte d'entrée pour la requête complète
        self.numgrid=self.numgrid+1
        self.entreeRequeteComplete = tkinter.Text(self.Entree, relief=tkinter.GROOVE, bd=2, width=150, height=10)
        self.entreeRequeteComplete.grid(row=self.numgrid)
        self.scrollRequeteComplete = tkinter.Scrollbar(self.Entree,bg='White', orient="vertical", command=self.entreeRequeteComplete.yview)
        self.scrollRequeteComplete.grid(row=self.numgrid,column=1,sticky="NSEW")
        self.scrollRequeteComplete.config(command=self.entreeRequeteComplete.yview)
        self.entreeRequeteComplete.configure(yscrollcommand=self.scrollRequeteComplete.set)
    Et qu'est-ce qui ne va pas ?

    - l'image ne s'affiche pas, du tout, alors qu'elle devrait recouvrir tout le fond (self.canvas);
    - la scrollbar ne se place pas le long du widget Text.

    Exemple :

    Nom : Exemple échec Tkinter.png
Affichages : 300
Taille : 4,6 Ko

    Avez-vous une idée de ce qui manque / est défaillant dans mon code ? Et oui, j'ai lu plusieurs pages sur le Net qui se rapprochaient de ce problème...

    Je vous remercie d'avance.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Termirtau Voir le message
    Avez-vous une idée de ce qui manque / est défaillant dans mon code ? Et oui, j'ai lu plusieurs pages sur le Net qui se rapprochaient de ce problème...
    La vraie question est de savoir pourquoi vous voulez que çà fonctionne?
    Si vous cherchez un peu sur Internet, vous trouverez des exemples qui font cela en associant l'image à un Label crée en premier et positionné dans la fenêtre via .place(...).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Homme Profil pro
    Non-informaticien
    Inscrit en
    Août 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non-informaticien

    Informations forums :
    Inscription : Août 2013
    Messages : 37
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    j'ai résolu le problème en supprimant la Frame générale (self.Entree) qui empêchait l'affichage de l'image, que je l'affiche via un self.canvas.create_image(...) ou par un tkinter.Label(...image=...).

    J'ai créé plusieurs frames, une par série d'objets contigus, et l'image sur le canvas apparaît très bien en fond.

    Pour les scrollbars, la source du problème était la même : dans une Frame aussi large que le canvas, les scrollbars se retrouvaient tout à droite de la Frame.

Discussions similaires

  1. Problème d'affichage d'images avec Tkinter
    Par flobos dans le forum Général Python
    Réponses: 3
    Dernier message: 14/03/2016, 16h35
  2. problème d'affichage dune image avec Tkinter
    Par destroy51 dans le forum GUI
    Réponses: 14
    Dernier message: 29/03/2014, 13h40
  3. problème au niveau de l'Image avec musique
    Par Namson dans le forum VB.NET
    Réponses: 9
    Dernier message: 07/05/2007, 15h55
  4. Problème d'affichage d'une image avec Glade.
    Par tistri dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 21/04/2007, 18h56
  5. [GD] Problème d'affichage d'une image avec gd2
    Par turini dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/10/2005, 11h59

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