Albert.Novikov
Окт. 4, 2008 14:55:07
Как сделать так чтобы когда мышь направляли на кнопку(кнопку с картинкой) картинка на кнопке менялась на другую, а когда курсор уходил обратно на прошлую?
Ferroman
Окт. 4, 2008 15:14:32
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.
Albert.Novikov
Окт. 4, 2008 17:39:57
Спасибо Ferroman, но я забыл сказать что мне нужно сделать это в Tk(всмысле Tk интерфейс) и еще нужно чтобы не GIF`к была а PNG картинка на кнопке. Вообщем, мне нужно чтобы подсвечивалась кнопка.
P.S Это я игру делаю.
Ferroman
Окт. 4, 2008 20:30:42
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()
Albert.Novikov
Окт. 5, 2008 08:59:10
Спасибо, Ferroman! Сразу видно - настоящий питонер! :)
Я примерно так и думал сделать, что Enter и Leave, и функции выполняют, переменное значение для картинки… Но я начинающий в питоне и не знал как это все прикрепить к кнопке.
Albert.Novikov
Окт. 5, 2008 09:13:06
Клево, все работает! Еще раз спасибо. Теперь мне не составит трудов сделать так чтобы и менялась картинка когда нажали и держат, нажималась кнопка Enter'ом и.т.д