Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 4, 2008 12:34:58

Albert.Novikov
От:
Зарегистрирован: 2008-10-04
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

PIL image на кнопке

Здравствуйте.

Мне нужно сделать так, чтобы, на кнопке была картинка(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 новичок, так что пожалуйста не ругайте если вопрос очень легкий :(



Офлайн

#2 Окт. 4, 2008 12:48:46

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

PIL image на кнопке

import ImageTk
img=ImageTk.photo_image(file)
эта на вскидку.. Все что мог вспомнить едя в автобусе :) а вообще этот вопрос должен быть задан в разделе GUI



Отредактировано (Окт. 4, 2008 12:49:32)

Офлайн

#3 Окт. 4, 2008 13:02:48

Albert.Novikov
От:
Зарегистрирован: 2008-10-04
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

PIL image на кнопке

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



Отредактировано (Окт. 4, 2008 13:03:48)

Офлайн

#4 Окт. 4, 2008 13:52:02

Albert.Novikov
От:
Зарегистрирован: 2008-10-04
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

PIL image на кнопке

Всем спасибо! Разобрался уже сам! надо было так:


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()

Хехе ^_^



Офлайн

#5 Окт. 5, 2008 15:36:47

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

PIL image на кнопке

Я же говорил что навскидку.. :-)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version