Tkinter标签图像设置不起作用

时间:2017-06-07 07:17:31

标签: python python-2.7 tkinter label

我一直在学习如何从头开始使用Tkinter,当我尝试在框架中设置一个简单的Label小部件时:

from Tkinter import *
from ttk import *

root = Tk()
root.title("Practice")

mainW = LabelFrame(root, text = "Main info")
mainW.grid()

image = Label(mainW, image = "C:\Users\Oscar Ramirez\Pictures\image.png")
image.grid(column = 0, row = 0)

codeEntry = Entry(mainW, text = "User Code")
codeEntry.grid(column = 1, row = 0)

root.mainloop()

我收到以下错误:

Traceback (most recent call last):
  File "Tutorial.py", line 10, in <module>
    image = Label(mainW, image = "C:\Users\Oscar Ramirez\Pictures\image.png")
  File "C:\Python27\lib\lib-tk\ttk.py", line 757, in __init__
Widget.__init__(self, master, "ttk::label", kw)
  File "C:\Python27\lib\lib-tk\ttk.py", line 555, in __init__
Tkinter.Widget.__init__(self, master, widgetname, kw=kw)
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 2096, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: image specification must contain an odd number of elements

我已经检查过图像格式,路线等等。现在我真的不知道是什么原因造成我的麻烦。

1 个答案:

答案 0 :(得分:2)

  

图像
  要在窗口小部件中显示的图像。 该值应为a   PhotoImage,BitmapImage或兼容对象。 如果指定,则为此   优先于文本和位图选项。 (图像/图像)

现在您只是为label的图像选项传递字符串。你需要像

这样的东西
photo = PhotoImage(file="image.gif")
label = Label(..., image=photo)
label.photo = photo  #reference keeping is important when working with images

目前,由于您使用的是PNG图像,因此您需要安装并使用Python Imaging Library (PIL)。有关详细信息,请参阅effbot的Photo Image部分。