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 :

Background jpg ?


Sujet :

Tkinter Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 66
    Points : 30
    Points
    30
    Par défaut Background jpg ?
    Bonjour,
    Je voudrais pouvoir afficher et écrire du texte sur une image en bg dans la fenetre.
    J'ai essayé ce code mais je n'ai que l'image... ('phrase' pas defini )
    _____________________________________________________________
    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
    from PIL import Image, ImageTk 
    import  Tkinter as Tk 
    root = Tk.Tk() 
     
    image = Image.open("E:/Agenda/Agenda.jpg") 
    photo = ImageTk.PhotoImage(image) 
     
    canvas = Tk.Canvas(root, width = image.size[0], height = image.size[1]) 
    canvas.create_image(0,0, anchor = Tk.NW, image=photo)
    canvas.pack()
     
    phrase = Label(root, text = 'essai ecriture sur image')
    phrase.grid(row =1, column =1)
     
    root.mainloop()
    ________________________________________________________________
    Y a-t-il un autre module qui ferait l'affaire ds Tkinter, je n'ai rien trouvé (mais ma traduction est svt approximative ).
    Merci
    alain

    Edit par Guigui_: pour les balises [CODE], c'est le bouton #

  2. #2
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 181
    Points : 199
    Points
    199
    Par défaut
    Salut,

    Citation Envoyé par jarailet
    Je voudrais pouvoir afficher et écrire du texte sur une image en bg dans la fenetre.
    1) Si tu veux que ton texte soit sur l'image, il faut utiliser la méthode create_text du widget Canvas, et non utiliser un Label.
    Label est un autre widget, qui sert juste à affiché un court texte dans la fenêtre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    canvas.create_text(x, y, text="Ce texte est écrit directement sur le canevas")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    import  Tkinter as Tk 
    ...
    phrase = Label( ...
    2) Tu as donné l'espace de nommage Tk au module Tkinter, tu dois donc écrire Tk.Label, sinon Label sera considéré comme un identificateur non défini.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    canvas.pack()
    ...
    phrase.grid( ...
    3) Les méthodes de placement des widgets, à savoir place, pack et grid, ne peuvent pas être utilisées ensemble.
    Tu dois en choisir une et ne pas utiliser les deux autres.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 66
    Points : 30
    Points
    30
    Par défaut
    Merci. Je viens d'essayer canvas_create... C'est bon mais je vais avoir du mal à disposer le(s) texte(s) sur l'image !
    En fait, elle représente deux pages d'un agenda ouvert et je dois importer des données sur chacune.
    N'existe-t-il pas une sorte de textbox qui permettrait de cadrer une page et d'y écrire en controlant la dispo et les propriétés de font ??? (souvenir d'un RichTextBox de VB4 je crois)
    Merci
    alain

  4. #4
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 181
    Points : 199
    Points
    199
    Par défaut
    Ah, tu veux mettre en forme du texte positionné par-dessus une image ?
    Le widget Text est le moyen le plus simple pour faire cela : il permet de justifier, changer la police, souligner, insérer des images, choisir les couleurs pour tout ou une partie d'un texte, etc.
    Cependant, pas d'image de fond...

    Si tu tiens à ton image de fond, il est toujours possible de bidouiller avec le widget Canvas, car on peut aussi préciser la police et les diverses propriétés d'un texte insérer avec create_text (consulter la documentation des options de cette méthode).
    La différence est que les options de mises en forme s'appliqueront pour tout le texte inséré avec create_text, car c'est un fait un simple Label positionné dans un Canvas, il n'y a pas le système de tags dont dispose le widget Text.
    Par conséquent, si tu veux des styles différents pour la mise en forme, il faudra utiliser plusieurs items create_text.

Discussions similaires

  1. comment faire un background transparent?
    Par guigui1005 dans le forum Composants
    Réponses: 5
    Dernier message: 17/05/2012, 21h45
  2. Réponses: 17
    Dernier message: 15/05/2006, 12h28
  3. Conversion automatique de tiffs en jpg/gif
    Par Davenico dans le forum Composants VCL
    Réponses: 2
    Dernier message: 03/07/2003, 15h07
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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