Je suis sur windows et je développe une application pygtk. J'ai besoin de savoir quand une fenêtre est visible ou cachée par une autre fenêtre. Afin d'arrêter un processus de dessin lourd.Événement Visibility_notify dans pyGTK
http://www.pygtk.org/docs/pygtk/class-gtkwidget.html#signal-gtkwidget--visibility-notify-event
I Utilisez le visibility_notify_event pour être informé sur la visibilité des fenêtres changement d'état. Je me gtk.gdk.VISIBILITY_FULLY_OBSCURED, gtk.gdk.VISIBILITY_PARTIAL ou gtk.gdk.VISIBILITY_UNOBSCURED
http://www.pygtk.org/docs/pygtk/class-gdkevent.html
est un exemple ici à afficher un message lorsque l'événement survient.
#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk
class EventBoxExample:
def __init__(self):
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_title("Test")
window.connect("destroy", lambda w: gtk.main_quit())
window.set_border_width(10)
# Create an EventBox and add it to our toplevel window
self.event_box = gtk.EventBox()
window.add(self.event_box)
self.event_box.show()
#we want all events
self.event_box.set_events(gtk.gdk.ALL_EVENTS_MASK)
#connect events
self.event_box.connect ("map_event", self.Map)
self.event_box.connect ("unmap_event", self.unMap)
self.event_box.connect ("configure_event", self.Configure)
self.event_box.connect ("expose_event", self.Expose)
self.event_box.connect ("visibility_notify_event", self.Visibility)
self.event_box.connect ("key_press_event", self.KeyPress)
self.event_box.connect ("button_press_event", self.ButtonPress)
self.event_box.connect ("button_release_event", self.ButtonRelease)
self.event_box.connect ("motion_notify_event", self.MouseMotion)
self.event_box.connect ("destroy", self.Destroy)
self.event_box.connect ("enter_notify_event", self.Enter)
self.event_box.connect ("leave_notify_event", self.Leave)
self.event_box.connect ("delete_event", self.Destroy)
window.show()
def Map (self, *args):
print "Map ", args
return True
def unMap (self, *args):
print "unMap ", args
return True
def Configure (self, *args):
print "Configure"
return True
def Expose (self, *args):
print "Expose"
return True
def Visibility (self, *args):
print "Visibility"
return True
def KeyPress (self, *args):
print "KeyPress"
return True
def ButtonPress (self, *args):
print "ButtonPress"
return True
def ButtonRelease (self, *args):
print "ButtonRelease"
return True
def MouseMotion (self, *args):
print "MouseMotion"
return True
def Enter (self, *args):
print "Enter"
self.event_box.grab_focus()
return True
def Leave (self, *args):
print "Leave"
return True
def Destroy (self, *args):
print "Destroy"
def main():
gtk.main()
return 0
if __name__ == "__main__":
EventBoxExample()
main()
Est-ce que quelqu'un a une idée de pourquoi je ne peux pas obtenir visibility_notify_event?
Thx
essayé sur Linux par un ami et il a eu l'événement de visibilité. Vous avez raison, il semble ne pas être mis en œuvre sur windows port thx – rapdum