2013-04-02 2 views
5

내 이미지 위에 텍스트를 표시하려고하지만이를 수행 할 수 없으므로 아무도 도와 줄 수 없습니다.내 tkinter 이미지 위에 텍스트를 표시 할 수 없습니다.

코드 :

# 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 

답변

7

레이블 생성자는 매개 변수 compound 걸립니다. 생성자를 이미지와 텍스트 모두에 전달하고 을 Tkinter.CENTER으로 전달하여 텍스트를 이미지에 겹칩니다. 이 기능에 대한 문서는 또한 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 

주의, 당신은 팩과 그리드를 섞어 쓸수 있다고하지 않을 수 있습니다. 둘 중 하나를 선택해야합니다. 참조 번호 : http://effbot.org/tkinterbook/grid.htm

P. 텍스트를 이미지보다 수직 방향으로 높이기를 원한다면 위의 코드와 동일한 코드를 사용할 수 있습니다 (compound=Tkinter.BOTTOM 제외).

관련 문제