2
我的問題涉及到Python GTKPython繪圖鼠標懸停時的圖像部分
我有一個圖像-a JPG--我將其繪製到繪圖區域。我想揭示圖像的一部分 - 可以是10像素×10像素的方塊 - 只有鼠標指針所在的位置。所有距離鼠標10 x 10像素的地方都應隱藏,即黑色。
我是新來的PyGtk請任何人都可以幫忙嗎?
感謝
我的問題涉及到Python GTKPython繪圖鼠標懸停時的圖像部分
我有一個圖像-a JPG--我將其繪製到繪圖區域。我想揭示圖像的一部分 - 可以是10像素×10像素的方塊 - 只有鼠標指針所在的位置。所有距離鼠標10 x 10像素的地方都應隱藏,即黑色。
我是新來的PyGtk請任何人都可以幫忙嗎?
感謝
#!/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的區域,因爲你的指針下看起來有點小。我也沒有隱瞞。
感謝您的代碼 - 很好的例子! – sdaau