2013-04-02 11 views
5

Próbuję wyświetlić tekst na górze mojego obrazu, ale nie mogę tego zrobić, proszę o pomoc.Nie mogę wyświetlać tekstu na obrazie ze striptizerem.

Kod:

# import Image and the graphics package Tkinter 
import Tkinter 
import Image, ImageTk 

class simpleapp_tk(Tkinter.Tk): 
    def __init__(self,parent): 
     Tkinter.Tk.__init__(self,parent) 
     self.parent = parent 
     self.initialize() 

    def initialize(self): 
## def create_widgets(self): 
     # create welcome label 
     label1 = Tkinter.Label(self, text = "Update User") 
     label1.grid(row = 0, column = 1, columnspan = 2, sticky = 'W') 

# open a SPIDER image and convert to byte format 
im = Image.open('C:\Users\JOHN\Desktop\key.jpg') 

root = Tkinter.Tk() # A root window for displaying objects 

# Convert the Image object into a TkPhoto object 
tkimage = ImageTk.PhotoImage(im) 

Tkinter.Label(root, image=tkimage).pack() # Put it in the display window 

root.mainloop() # Start the GUI 

Odpowiedz

7

Konstruktor Label przyjmuje parametr compound. Przekaż konstruktorowi zarówno obraz, jak i tekst, i przeprowadź compound jako Tkinter.CENTER, aby pokryć tekst na obrazie. Dokumentacja dla tej funkcji jest w http://effbot.org/tkinterbook/label.htm

import Tkinter 
import Image, ImageTk 

# open a SPIDER image and convert to byte format  
im = Image.open(r'C:\Users\JOHN\Desktop\key.jpg') 

root = Tkinter.Tk() # A root window for displaying objects 

# Convert the Image object into a TkPhoto object 
tkimage = ImageTk.PhotoImage(im) 

Tkinter.Label(root, image=tkimage, text="Update User", compound=Tkinter.CENTER).pack() # Put it in the display window 

root.mainloop() # Start the GUI 

również pamiętać, że nie powinniśmy się mieszać pakiet i siatkę. Powinieneś wybrać jedną lub drugą. Odniesienie: http://effbot.org/tkinterbook/grid.htm

P.S. na wypadek, gdybyś chciał, aby tekst był w pionie wyżej niż obraz, możesz użyć tego samego kodu, co powyżej, z wyjątkiem ustawienia compound=Tkinter.BOTTOM.

Powiązane problemy