如何用pygtk拖动图像 [英] How to drag images with pygtk

查看:94
本文介绍了如何用pygtk拖动图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用pygtk拖拽/移动图片?

这里是一个人在做它的视频,但是这个人没有给出源代码。 解决方案

这里有一个小小的演示(我不知道它是从哪里来的,对不起),这和这里找到的非常相似: http://www.pygtk.org/pygtk2tutorial/examples/dragndrop.py

  import gtk 

class DragImage(gtk.Image):
def __init __(self,image,layout):
gtk.Image .__ init __(self)
self.drag = False
self.drag_x = 0
self.drag_y = 0
self.layout = layout
self.x = 0
self。 y = 0
self.set_from_file(image)
self.event_box = gtk.EventBox()
self.event_box.set_visible_window(Fa lse)
self.event_box.add(self)
self.event_box.add_events(gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
self.event_box.connect(button-press-event,self.click)
self.event_box.connect(button-release-event,self.release)
self.event_box.connect(motion-notify-event,self.mousemove)
self.layout.put(self.event_box,0,0)

def点击(self,widget,event):
self.drag = True
self.drag_x = event.x
self.drag_y = event.y
print(self.drag_x,self .drag_y)

def release(self,widget,event):
self.drag = False

def mousemove(self,widget,event):
if self.drag:
self.layout.move(self.event_box,self.x + int(event.x-self.drag_x),self.y + int(event.y-self.drag_y) )
self.x,self.y = self.layout.child_get(self.event_box,'x','y')

class move_test(object):
def __init __(self):
window = gtk.Window()
layout = gtk.Layout()
img1 = DragImage('image1.jpg',layout)
img2 = DragImage('image2.jpg',layout)
window.add(布局)
window.show_all()

move_test()
gtk.main()


How can I drag/move images using pygtk?

Here is a video of someone doing it, however the person did not give the source code.

解决方案

here's a little demo (i don(t remmeber excatly were it comes from, sorry) which is very similar to the one found here: http://www.pygtk.org/pygtk2tutorial/examples/dragndrop.py

import gtk

class DragImage(gtk.Image):
    def __init__(self,image,layout):
        gtk.Image.__init__(self)
        self.drag = False
        self.drag_x = 0
        self.drag_y = 0
        self.layout = layout
        self.x = 0
        self.y = 0
        self.set_from_file(image)
        self.event_box = gtk.EventBox()
        self.event_box.set_visible_window(False)
        self.event_box.add(self)
        self.event_box.add_events(gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
        self.event_box.connect("button-press-event", self.click)
        self.event_box.connect("button-release-event", self.release)
        self.event_box.connect("motion-notify-event", self.mousemove)
        self.layout.put( self.event_box, 0, 0 )

    def click(self, widget, event):
        self.drag =  True
        self.drag_x =  event.x
        self.drag_y =  event.y
        print(self.drag_x, self.drag_y)

    def release(self, widget, event):
        self.drag =  False

    def mousemove(self,widget,event):
        if self.drag:
            self.layout.move(self.event_box,self.x+int(event.x-self.drag_x),self.y+int(event.y-self.drag_y))
            self.x, self.y = self.layout.child_get(self.event_box,'x','y')

class move_test(object):
    def __init__(self):
        window =  gtk.Window()
        layout =  gtk.Layout()
        img1 = DragImage('image1.jpg',layout)
        img2 = DragImage('image2.jpg',layout)
        window.add(layout)
        window.show_all()

move_test()
gtk.main()

这篇关于如何用pygtk拖动图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆