2017-04-19 3 views
1

Je travaille sur tkinter et ce que je voulais faire était montrer un signe d'annulation (un PNG) sur le texte qui montrera le prix en arrière-plan de PNG.Texte sous l'affichage PNG en utilisant Tkinter Python

Jusqu'ici, j'étais capable d'afficher correctement le texte sur l'image en utilisant l'option "compound" de tkinter.label(). Mais j'ai essayé différentes façons d'obtenir le PNG en plus du texte mais je n'ai pas réussi jusqu'à présent.

Est ce que j'essaie de faire du tout possible? Si oui, veuillez guider, sinon, alors suggérez-moi un moyen de contourner. Quel est le plus proche que je peux faire en utilisant les fonctionnalités disponibles. J'ai même essayé de faire un signe d'annulation en utilisant canvas.draw() mais cela masque aussi le texte.

bien vouloir me aider à

Cordialement

+0

@abccd PNG a aussi la partie transparente. cela devrait montrer tout ce qu'il y a derrière. dans mon cas, quand j'utilise le png, il couvre toute la surface de l'image. Je peux changer la couleur d'arrière-plan de cette partie transparente mais pas capable de lui montrer le texte derrière. J'espère que je l'ai mieux expliqué cette fois. –

Répondre

0

Votre meilleure solution pour afficher une image PNG partiellement transparente sur le dessus d'un texte en tkinter est probablement d'utiliser un Canvas avec les create_text() et create_image() méthodes.

Exemple de code (Python 2.x):

import Tkinter as tk 
from PIL import ImageTk 
from io import BytesIO 
from urllib import urlopen 

root = tk.Tk() 
canvas = tk.Canvas(root, width=300, height=300) 
canvas.pack() 

canvas.create_text(150, 150, text="word word word word word word word word") 
url = "https://www.dropbox.com/s/etqan5h62d14mv8/Pikachu-PNG-Photos.png?dl=1" 
img = ImageTk.PhotoImage(file=BytesIO(urlopen(url).read())) 
canvas.create_image(150, 150, image=img) 

root.mainloop() 

Pour Python 3.x, utilisez les touches suivantes dans les déclarations d'importation:

import tkinter as tk 
from urllib.request import urlopen 

Vous devriez obtenir ceci:

enter image description here