diff options
Diffstat (limited to 'examples/dropsite.py')
-rw-r--r-- | examples/dropsite.py | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/examples/dropsite.py b/examples/dropsite.py new file mode 100644 index 0000000..8581e0e --- /dev/null +++ b/examples/dropsite.py @@ -0,0 +1,96 @@ +# This is part of the dragdrop example. + + +from python_tqt.qt import * + +import secret + + +class DropSite(TQLabel): + def __init__(self, parent=None, name=None): + TQLabel.__init__( self, parent, name ) + self.setAcceptDrops(1) + + # this is a normal event + def mousePressEvent( self, e ): + if ( self.pixmap() ) : + drobj = TQImageDrag( self.pixmap().convertToImage(), self ) + pm = TQPixmap() + pm.convertFromImage(self.pixmap().convertToImage().smoothScale( + self.pixmap().width()/3,self.pixmap().height()/3)) + drobj.setPixmap(pm,TQPoint(-5,-7)) + else : + drobj = TQTextDrag( self.text(), self ) + drobj.dragCopy() + + def backgroundColorChange( self, qcolor ): + # Reduce flicker by using repaint() rather than update() + self.repaint() + + def dragMoveEvent( self, e ): + # Check if you want the drag at e.pos()... + # Give the user some feedback... + pass + + def dragEnterEvent( self, e ): + # Check if you want the drag... + if (secret.canDecode( e ) or + TQTextDrag.canDecode( e ) or + TQImageDrag.canDecode( e ) or + TQUriDrag.canDecode( e )): + e.accept() + + # Give the user some feedback... + t = '' + i = 0 + while e.format( i ): + if ( t != '' ): + t += "\n" + t += str(e.format( i )) + i += 1 + self.emit(PYSIGNAL('message(TQString &)'), (TQString(t),)) + self.setEraseColor(TQt.white) + + def dragLeaveEvent( self, TQDragLeaveEvent ): + # Give the user some feedback... + self.emit(PYSIGNAL('message(TQString &)'), (TQString(''),)) + self.setEraseColor(TQt.lightGray) + + def dropEvent( self, e ): + self.setEraseColor(TQt.lightGray) + # Try to decode to the data you understand... + str = TQString() + if ( TQTextDrag.decode( e, str ) ) : + self.setText( str ) + self.setMinimumSize( self.minimumSize().expandedTo(self.sizeHint()) ) + return + + pm = TQPixmap() + if ( TQImageDrag.decode( e, pm ) ) : + self.setPixmap( pm ) + self.setMinimumSize(self.minimumSize().expandedTo(self.sizeHint())) + return + + # TQStrList strings + #strings = TQStrList() + strings = [] + if ( TQUriDrag.decode( e, strings ) ) : + m = TQString("Full URLs:\n") + for u in strings: + m = m + " " + u + '\n' + # TQStringList files + files = [] + if ( TQUriDrag.decodeLocalFiles( e, files ) ) : + m += "Files:\n" + # for (TQStringList.Iterator i=files.begin() i!=files.end() ++i) + for i in files: + m = m + " " + i + '\n' + self.setText( m ) + self.setMinimumSize(self.minimumSize().expandedTo(self.sizeHint())) + return + + str = secret.decode( e ) + if str: + self.setText( str ) + self.setMinimumSize(self.minimumSize().expandedTo(self.sizeHint())) + return |