Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Смена картинки при направлении на кнопку [RSS Feed]

#1 Окт. 4, 2008 14:55:07

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

Смена картинки при направлении на кнопку

Как сделать так чтобы когда мышь направляли на кнопку(кнопку с картинкой) картинка на кнопке менялась на другую, а когда курсор уходил обратно на прошлую?



Офлайн

#2 Окт. 4, 2008 15:14:32

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Смена картинки при направлении на кнопку

wxBitmapButton::GetBitmapHover
const wxBitmap& GetBitmapHover() const wxBitmap& GetBitmapHover()
Returns the bitmap used when the mouse is over the button, may be invalid.
wxBitmapButton::SetBitmapHover
void SetBitmapHover(const wxBitmap& bitmap)
Sets the bitmap to be shown when the mouse is over the button.
This function is new since wxWidgets version 2.7.0 and the hover bitmap is currently only supported in wxMSW.

Офлайн

#3 Окт. 4, 2008 17:39:57

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

Смена картинки при направлении на кнопку

Спасибо Ferroman, но я забыл сказать что мне нужно сделать это в Tk(всмысле Tk интерфейс) и еще нужно чтобы не GIF`к была а PNG картинка на кнопке. Вообщем, мне нужно чтобы подсвечивалась кнопка.

P.S Это я игру делаю.



Офлайн

#4 Окт. 4, 2008 20:30:42

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Смена картинки при направлении на кнопку

def hover(event):
global img
src_image = Image.open(<your image1>)
img = ImageTk.PhotoImage(src_image)
event.widget["image"]=img

def uhover(event):
global img # надо делать глобальным, иначе не разрешается нормально картинка. С использованием ООП нету такой проблемы :)
src_image = Image.open(your image2)
img = ImageTk.PhotoImage(src_image)
event.widget["image"]=img

root.title("Tk gui")

src_image = Image.open(<your image1>) # формат картинки может быть практически любой - png, jpg, bmp, gif...
img = ImageTk.PhotoImage(src_image)
e = Button(root, image=img, relief=RIDGE)
e.grid(row=0, column=0)
e.bind("<Enter>", hover) # при заход курсора над кнопкой
e.bind("<Leave>", uhover) № при выход из неё
root.mainloop()

Отредактировано (Окт. 4, 2008 20:31:36)

Офлайн

#5 Окт. 5, 2008 08:59:10

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

Смена картинки при направлении на кнопку

Спасибо, Ferroman! Сразу видно - настоящий питонер! :)

Я примерно так и думал сделать, что Enter и Leave, и функции выполняют, переменное значение для картинки… Но я начинающий в питоне и не знал как это все прикрепить к кнопке.



Отредактировано (Окт. 5, 2008 09:00:08)

Офлайн

#6 Окт. 5, 2008 09:13:06

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

Смена картинки при направлении на кнопку

Клево, все работает! Еще раз спасибо. Теперь мне не составит трудов сделать так чтобы и менялась картинка когда нажали и держат, нажималась кнопка Enter'ом и.т.д



Офлайн

  • Начало
  • » GUI
  • » Смена картинки при направлении на кнопку[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version