Изменить тип курсора в приложении Pygtk

1

В моем приложении я хочу изменить тип курсора для всех кнопок, уйти от мыши и ввести события. для этого я хочу написать обобщенный код вместо подключения каждой кнопки с соответствующим сигналом.

вот пример кода для него.

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. что может быть проблемой с кнопками файлового поля?

Я также ищу более подходящий способ изменить тип курсора. Кто-нибудь имеет какое-либо предложение или исправление для вышеуказанного кода?

Теги:
pygtk

1 ответ

0

Я знаю, что это сидит здесь некоторое время, так что просто мысль... возможно, перестройте свой графический интерфейс (или какой-то макет) за пределами Glade. Это действительно не очень сложно сделать, и документация фантастическая.

Затем попробуйте подключить коды изменения курсора мыши и посмотрите, работает ли он.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню