Gtk.DrawingArea-为什么鼠标离开的'draw'信号

时间:2019-01-16 18:27:53

标签: python gtk3 pycairo

我现在意识到它仅在某些环境下发生。
可能是窗口管理器设置问题

下面的drawarea-events.py示例具有以下行为。
鼠标进入DrawingArea窗口时,我们将获得1个绘制信号。
鼠标离开DrawingArea窗口时,我们将获得13个绘制信号。
为什么?干什么的?

#!/usr/bin/env python3

import sys
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import Gdk
import cairo

def quit(*args):
    sys.stderr.write('quit args=%s\n' % str(args))
    Gtk.main_quit()
    sys.exit(0)

draw_count = 0
def draw(da, cairo_ctx, *args):
    global draw_count
    sys.stderr.write('draw count=%d args=%s\n' % (draw_count, str(args)))
    draw_count += 1

win = Gtk.Window(title="DrawingArea Events")
win.connect("destroy", quit, "via window destroy")
win.set_default_size(240, 160)
da = Gtk.DrawingArea()
da.connect('draw', draw, "dummy arg")
win.add(da)
win.show_all()
Gtk.main()

0 个答案:

没有答案