use*_*282 7 python image tkinter python-imaging-library python-2.7
我试图在我的图像上显示文字,但我不能这样做,任何人都可以帮助请.
码:
# 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
Run Code Online (Sandbox Code Playgroud)
twa*_*lig 11
Label构造函数接受一个参数compound
.通过构造两个图像和文本,并通过在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
Run Code Online (Sandbox Code Playgroud)
另请注意,您不应该混合包和网格.你应该选择其中一个.参考:http://effbot.org/tkinterbook/grid.htm
PS,以防你想要文本垂直高于图像,你可以使用与上面相同的代码,除了set compound=Tkinter.BOTTOM
.