1
在我的應用程序中,我想更改所有按鈕的光標類型,鼠標離開並輸入事件。爲此,我想編寫通用代碼,而不是用適當的信號連接每個按鈕。更改Pygtk應用程序中的光標類型
這是一個示例代碼。
import gtk
class Button(gtk.Button):
__gsignals__ = {
"leave" : "override",
"enter" : "override"
}
def do_leave(self):
self.window.set_cursor(None)
def do_enter(self):
print "Enter"
self.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.HAND2))
class EventBox:
def __init__(self):
window = gtk.Window()
vbox = gtk.VBox()
label = gtk.Label("Change Cursor")
vbox.pack_start(label, False, False)
bt = gtk.Button('Ok')
bt.connect('clicked', self.on_click, window)
vbox.pack_start(bt, False, False)
eventbox = gtk.EventBox()
window.set_size_request(400,400)
window.add(eventbox)
eventbox.add(vbox)
window.show_all()
def on_click(self, widget, window, *args):
print "On click"
window.destroy()
NextWin()
def mouse_enter_event(self, widget, *args):
print "Enter"
widget.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.HAND2))
class NextWin:
def __init__(self):
window = gtk.Window()
vbox = gtk.VBox()
label = gtk.Label("Change Cursor")
vbox.pack_start(label, False, False)
bt = gtk.Button('Ok')
vbox.pack_start(bt, False, False)
eventbox = gtk.EventBox()
window.connect("destroy", lambda w: gtk.main_quit())
window.set_size_request(400,400)
window.add(eventbox)
window.set_name('Next Window')
window.set_title('Next Window')
eventbox.add(vbox)
window.show_all()
gtk.Button = Button
EventBox()
gtk.main()
上面的代碼是爲gtk按鈕工作,但不適用於glade文件按鈕。 glade文件按鈕有什麼問題?
我還在尋找更適合的方法來改變光標類型。 有沒有人有任何建議或更正上述代碼?