def __init__(self):
gtk.DrawingArea.__init__(self)
self.graph = Graph()
self.openfilename = None
self.set_flags(gtk.CAN_FOCUS)
self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
self.connect("button-press-event", self.on_area_button_press)
self.connect("button-release-event", self.on_area_button_release)
self.add_events(gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
self.connect("motion-notify-event", self.on_area_motion_notify)
self.connect("scroll-event", self.on_area_scroll_event)
self.connect("size-allocate", self.on_area_size_allocate)
self.connect('key-press-event', self.on_key_press_event)
self.x, self.y = 0.0, 0.0
self.zoom_ratio = 1.0
self.zoom_to_fit_on_resize = False
self.animation = NoAnimation(self)
self.drag_action = NullAction(self)
self.presstime = None
self.highlight = None
python类DrawingArea()的实例源码
def __init__(self):
gtk.DrawingArea.__init__(self)
self.graph = Graph()
self.openfilename = None
self.set_flags(gtk.CAN_FOCUS)
self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
self.connect("button-press-event", self.on_area_button_press)
self.connect("button-release-event", self.on_area_button_release)
self.add_events(gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
self.connect("motion-notify-event", self.on_area_motion_notify)
self.connect("scroll-event", self.on_area_scroll_event)
self.connect("size-allocate", self.on_area_size_allocate)
self.connect('key-press-event', self.on_key_press_event)
self.x, self.y = 0.0, 0.0
self.zoom_ratio = 1.0
self.zoom_to_fit_on_resize = False
self.animation = NoAnimation(self)
self.drag_action = NullAction(self)
self.presstime = None
self.highlight = None
def __init__(self):
gtk.DrawingArea.__init__(self)
self.connect("expose-event", self.expose)
self.connect("size-allocate", self.size_allocate)
self._surface = None
self._options = None
def __init__(self):
global args
super(PyApp, self).__init__()
self.set_title("Lasersaur")
self.resize(1220, 610)
self.set_position(gtk.WIN_POS_CENTER)
self.connect("destroy", gtk.main_quit)
# exit with ctr-q
accel_group = gtk.AccelGroup()
accel_group.connect_group(ord('q'), gtk.gdk.CONTROL_MASK,
gtk.ACCEL_LOCKED, gtk.main_quit)
self.add_accel_group(accel_group)
self.darea = gtk.DrawingArea()
self.darea.connect("expose-event", self.expose)
self.add(self.darea)
if args.animate:
self.timer = True
if args.fast:
glib.timeout_add(10, self.on_timer) #100fps
self.inc = 8
else:
glib.timeout_add(40, self.on_timer) #25fps
self.inc = 4
self.todraw = self.inc
self.show_all()
def __init__(self):
gtk.DrawingArea.__init__(self)
self.graph = Graph()
self.openfilename = None
self.set_flags(gtk.CAN_FOCUS)
self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
self.connect("button-press-event", self.on_area_button_press)
self.connect("button-release-event", self.on_area_button_release)
self.add_events(gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
self.connect("motion-notify-event", self.on_area_motion_notify)
self.connect("scroll-event", self.on_area_scroll_event)
self.connect("size-allocate", self.on_area_size_allocate)
self.connect('key-press-event', self.on_key_press_event)
self.last_mtime = None
gobject.timeout_add(1000, self.update)
self.x, self.y = 0.0, 0.0
self.zoom_ratio = 1.0
self.zoom_to_fit_on_resize = False
self.animation = NoAnimation(self)
self.drag_action = NullAction(self)
self.presstime = None
self.highlight = None
def __init__(self, graph, layout, scrollwin=None, ):
gtk.DrawingArea.__init__(self)
self._vg_graph = graph
self._vg_layout = layout
self._vg_scrollwin = scrollwin
self.connect('expose-event', self.expose_event_cb)
self.connect('button_press_event', self.button_press_event)
self.set_events( self.get_events() | gtk.gdk.BUTTON_PRESS_MASK)
self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color())
self.modify_fg(gtk.STATE_NORMAL, gtk.gdk.Color(green=65535))
if scrollwin != None:
scrollwin.connect('destroy', self.scroll_destroy_cb)
def _setup_widgets(self):
self._window = gtk.Window()
self._window.hide()
self._window.connect("destroy", self._quit)
widget = gtk.DrawingArea()
self._window.add(widget)
self.lcd_display = LCDWidget(widget, g_rows, g_cols)
def __init__(self, node, *args, **kwargs):
gtk.DrawingArea.__init__(self, *args, **kwargs)
self.node = node
self.timeoutID = gobject.timeout_add(5000, self.timeout)
self.comms = {}
self.incomingComms = {}
# poison the node with our GUI hooks
self.node._protocol.__gui = self
self.node._protocol.__realSendRPC = self.node._protocol.sendRPC
self.node._protocol.sendRPC = self.__guiSendRPC
self.node._protocol.__realDatagramReceived = self.node._protocol.datagramReceived
self.node._protocol.datagramReceived = self.__guiDatagramReceived
self.msgCounter = 0
self.printMsgCount = False
def __init__(self):
gtk.DrawingArea.__init__(self)
self.graph = Graph()
self.openfilename = None
self.set_flags(gtk.CAN_FOCUS)
self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
self.connect("button-press-event", self.on_area_button_press)
self.connect("button-release-event", self.on_area_button_release)
self.add_events(gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
self.connect("motion-notify-event", self.on_area_motion_notify)
self.connect("scroll-event", self.on_area_scroll_event)
self.connect("size-allocate", self.on_area_size_allocate)
self.connect('key-press-event', self.on_key_press_event)
self.last_mtime = None
gobject.timeout_add(1000, self.update)
self.x, self.y = 0.0, 0.0
self.zoom_ratio = 1.0
self.zoom_to_fit_on_resize = False
self.animation = NoAnimation(self)
self.drag_action = NullAction(self)
self.presstime = None
self.highlight = None
def __init__(self):
gtk.DrawingArea.__init__(self)
self.graph = Graph()
self.openfilename = None
self.set_flags(gtk.CAN_FOCUS)
self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
self.connect("button-press-event", self.on_area_button_press)
self.connect("button-release-event", self.on_area_button_release)
self.add_events(gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
self.connect("motion-notify-event", self.on_area_motion_notify)
self.connect("scroll-event", self.on_area_scroll_event)
self.connect("size-allocate", self.on_area_size_allocate)
self.connect('key-press-event', self.on_key_press_event)
self.last_mtime = None
gobject.timeout_add(1000, self.update)
self.x, self.y = 0.0, 0.0
self.zoom_ratio = 1.0
self.zoom_to_fit_on_resize = False
self.animation = NoAnimation(self)
self.drag_action = NullAction(self)
self.presstime = None
self.highlight = None
def __init__(self):
"""initialise video widget"""
#print "VideoWidget.__init__"
gtk.DrawingArea.__init__(self)
self.connect('realize', self.on_realize)
def __init__(self, display=True):
import pygst
import gst
if display:
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_title("Video-Player")
self.window.set_default_size(500, 400)
self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
self.window.connect('delete-event', lambda _: reactor.stop())
self.movie_window = gtk.DrawingArea()
self.window.add(self.movie_window)
self.window.show_all()
self.player = gst.Pipeline("player")
self.appsrc = gst.element_factory_make("appsrc", "source")
self.appsrc.connect("enough-data", self.on_enough_data)
self.appsrc.connect("need-data", self.on_need_data)
self.appsrc.set_property("max-bytes", 10000)
if display:
self.decodebin = gst.element_factory_make("decodebin2", "decodebin")
self.decodebin.connect("new-decoded-pad", self.on_decoded_pad)
self.player.add(self.appsrc, self.decodebin)
gst.element_link_many(self.appsrc, self.decodebin)
else:
sink = gst.element_factory_make("filesink", "filesink")
sink.set_property("location", "/tmp/hls-player.ts")
self.player.add(self.appsrc, sink)
gst.element_link_many(self.appsrc, sink)
bus = self.player.get_bus()
bus.add_signal_watch()
bus.enable_sync_message_emission()
bus.connect("message", self.on_message)
bus.connect("sync-message::element", self.on_sync_message)
self._playing = False
self._need_data = False
self._cb = None
def __init__(self):
gtk.DrawingArea.__init__(self)
self.set_double_buffered(False)
self.add_events(
gtk.gdk.BUTTON_PRESS_MASK|
gtk.gdk.BUTTON_RELEASE_MASK|
gtk.gdk.BUTTON1_MOTION_MASK|
gtk.gdk.BUTTON2_MOTION_MASK|
gtk.gdk.BUTTON3_MOTION_MASK|
gtk.gdk.SCROLL_MASK|
gtk.gdk.KEY_PRESS_MASK|
gtk.gdk.KEY_RELEASE_MASK)
# foregorund, background
self.fg = (0, 0, 0)
self.bg = (0, 0, 0)
# list of layers
self.layers = []
# visible are used for speedup as list
self.visible = None
# canvas bindings
self.bindings = {}
# last item which had some event
self.current_item = None
# cairo context
self.cr = None
# cached cairo image surfaces using filenames/images as keys
self.cache_filenames = {}
self.cache_images = {}
# connect event callbacks
gtk.DrawingArea.connect(self, 'configure-event', self.drawingarea_configure_event_cb)
gtk.DrawingArea.connect(self, 'expose-event', self.drawingarea_expose_event_cb)
gtk.DrawingArea.connect(self, 'button-press-event', self.drawingarea_button_press_event_cb)
gtk.DrawingArea.connect(self, 'button-release-event', self.drawingarea_button_release_event_cb)
gtk.DrawingArea.connect(self, 'motion-notify-event', self.drawingarea_motion_notify_event_cb)
gtk.DrawingArea.connect(self, 'scroll-event', self.drawingarea_scroll_event_cb)