Найти - Пользователи
Полная версия: PIL image на кнопке
Начало » Python для экспертов » PIL image на кнопке
1
Albert.Novikov
Здравствуйте.

Мне нужно сделать так, чтобы, на кнопке была картинка(PNG). Так почему-то не получилось:

from PIL import Image

buttonsg_img = Image.open(“button_single_game.png”)
buttonsg = Button(app, image=buttonsg_img, command=calledsg)
buttonsg.grid()

Вот какая ошибка вышла из консоли:

Traceback (most recent call last):
File “./main.py”, line 35, in <module>
buttonsg = Button(app, image=buttonsg_img, command=calledsg)
File “/usr/lib/python2.5/lib-tk/Tkinter.py”, line 2000, in __init__
Widget.__init__(self, master, ‘button’, cnf, kw)
File “/usr/lib/python2.5/lib-tk/Tkinter.py”, line 1930, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: image “<PIL.PngImagePlugin.PngImageFile instance at 0xb6c24cac>” doesn't exist


P.S я в python новичок, так что пожалуйста не ругайте если вопрос очень легкий :(
igor.kaist
import ImageTk
img=ImageTk.photo_image(file)
эта на вскидку.. Все что мог вспомнить едя в автобусе :) а вообще этот вопрос должен быть задан в разделе GUI
Albert.Novikov
buttonsg_img = ImageTk.PhotoImage(“button_single_game.png”)
buttonsg = Button(app, image=buttonsg_img, command=calledsg)
buttonsg.grid()

Вот так, как Вы сказали не работает, говорит консоль:

Traceback (most recent call last):
File “./main.py”, line 35, in <module>
buttonsg_img = ImageTk.PhotoImage(“button_single_game.png”)
File “/usr/lib/python2.5/site-packages/PIL/ImageTk.py”, line 109, in __init__
mode = Image.getmodebase(mode)
File “/usr/lib/python2.5/site-packages/PIL/Image.py”, line 235, in getmodebase
return ImageMode.getmode(mode).basemode
File “/usr/lib/python2.5/site-packages/PIL/ImageMode.py”, line 46, in getmode
return _modes
KeyError: ‘button_single_game.png’
Exception exceptions.AttributeError: “PhotoImage instance has no attribute ‘_PhotoImage__photo’” in <bound method PhotoImage.__del__ of <ImageTk.PhotoImage instance at 0xb6c80cec>> ignored
Albert.Novikov
Всем спасибо! Разобрался уже сам! надо было так:


from PIL import Image
import ImageTk

buttonsg_img = Image.open(“abc.gif”)
buttonsg_img = ImageTk.PhotoImage(buttonsg_img)
buttonsg = Button(app, image=buttonsg_img, command=calledsg)
buttonsg.grid()

Хехе ^_^
igor.kaist
Я же говорил что навскидку.. :-)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB