Portál AbcLinuxu, 4. prosince 2025 17:18
GtkWarning: gtk_widget_set_events: assertion `!GTK_WIDGET_REALIZED (widget)' failed drawing_area.set_events(gtk.gdk.EXPOSURE_MASKchyba ukazuje na řádek, kde se snažím nastavit události:
drawing_area.set_events(gtk.gdk.EXPOSURE_MASK
| gtk.gdk.LEAVE_NOTIFY_MASK
| gtk.gdk.BUTTON_PRESS_MASK
| gtk.gdk.POINTER_MOTION_MASK
| gtk.gdk.POINTER_MOTION_HINT_MASK)
Podařilo se někomu napsat kreslící aplikaci za použití Gladu a pythonu? Příklad kódu by nebyl?
Díky
> Try to connect to signal_realize, and do add_events there.
> Also, for motion event and for signal_realize use after flag = false
> when connecting.
> Syntax like: signal().connect( sigc::mem_fun( object, &mem_fun ), false );
>
Ale nerozumim tomu, neodpustím si neodpustitelné "Pomoc!"
kus mého kódu:
...
drawing_area.connect("motion_notify_event",self.motion_notify_event)
drawing_area.connect("button_press_event", self.button_press_event)
...
drawing_area.set_events(gtk.gdk.EXPOSURE_MASK
| gtk.gdk.LEAVE_NOTIFY_MASK
| gtk.gdk.BUTTON_PRESS_MASK
| gtk.gdk.POINTER_MOTION_MASK
| gtk.gdk.POINTER_MOTION_HINT_MASK)
...
Díky
Nastav obsluhu signálů i masku událostí přímo v Gladu (obrázek) a po načtení XML souboru připoj signály (příklad):
xml = gtk.glade.XML("platno.glade", "window")
xml.signal_autoconnect(locals())
__init__(self):
self.menu_tree = gtk.glade.XML(gladexml, "menu1")
self.damenu = self.menu_tree.get_widget("menu1")
def on_delete_one_activate(self,widget,event):
print "TADY"
print event
#self.digitizedLine.pop()
self.menu_tree = gtk.glade.XML(gladexml, "menu1")
self.settings_tree.signal_autoconnect(self)
self.damenu = self.menu_tree.get_widget("menu1")
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.