我的问题与Python GTK有关
我有一个图像-a JPG - 我将它绘制到绘图区域。我想揭示图像的一部分 - 分为10像素×10像素 - 只是鼠标指针当前所在的位置。距离鼠标10 x 10 px平方的所有东西都应隐藏,即黑色。
我是PyGtk的新手,请有人帮忙吗?
谢谢
答案 0 :(得分:2)
#!/usr/bin/python
import os
import sys
import gtk
MASK_COLOR = 0x000000
def composite(source, start_x=345, start_y=345):
width = 50
height = 50
alpha = 255
dest = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8 ,800,800)
dest.fill(MASK_COLOR)
source.composite(dest,
start_x,
start_y,
width,
height,
0,
0,
1,
1,
gtk.gdk.INTERP_NEAREST,
alpha)
return dest
def it_moved(widget, event, window, masked, original):
r = window.get_display().get_window_at_pointer()
masked.set_from_pixbuf(composite(original.get_pixbuf(), r[1], r[2]))
return True
if __name__ == '__main__':
window = gtk.Window()
eb = gtk.EventBox()
original = gtk.Image()
original.set_from_file(sys.argv[1])
masked = gtk.Image()
masked.set_from_pixbuf(composite(original.get_pixbuf()))
eb.add(masked)
eb.set_property('events', gtk.gdk.POINTER_MOTION_MASK)
eb.connect('motion_notify_event', it_moved, window, masked, original)
window.add(eb)
window.set_size_request(800,800)
window.show_all()
gtk.main()
这应该像你描述的那样。我选择显示一个50x50的区域,因为你的指针下看起来有点小。我也没有隐瞒这一点。