1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# This is part of the dragdrop example.
from qt import *
def canDecode(e):
return e.provides( "secret/magic" )
def decode(e):
payload = str(e.data( "secret/magic" ))
if ( str(payload) != '' ):
e.accept()
return QString("The secret number is "+str(ord(payload)) )
return None
class SecretDrag(QStoredDrag):
def __init__(self, secret, parent=None, name=None):
QStoredDrag.__init__(self, 'secret/magic', parent, name)
data = QByteArray(chr(secret))
self.setEncodedData( data )
# XPM
picture_xpm = [
"16 16 3 1",
" c None",
". c #000000",
"X c #FFFF00",
" ..... ",
" ..XXXXX.. ",
" .XXXXXXXXX. ",
" .XXXXXXXXXXX. ",
" .XX..XXX..XX. ",
".XXXXXXXXXXXXX. ",
".XX...XXX...XX. ",
".XXX..XXX..XXX. ",
".XXXXXXXXXXXXX. ",
".XXXXXX.XXXXXX. ",
" .XX.XX.XX.XX. ",
" .XXX..X..XXX. ",
" .XXXXXXXXX. ",
" ..XXXXX.. ",
" ..... ",
" "
]
class SecretSource(QLabel):
def __init__(self, secret, parent=None, name=None):
QLabel.__init__(self, "Secret", parent, name)
self.setEraseColor( Qt.blue.light() )
self.setFrameStyle( QLabel.Box | QLabel.Sunken )
self.setMinimumHeight( self.sizeHint().height()*2 )
self.setAlignment( QLabel.AlignCenter )
self.mySecret = secret
def mousePressEvent(self, e):
sd = SecretDrag( self.mySecret, self )
sd.setPixmap(QPixmap(picture_xpm),QPoint(8,8))
sd.dragCopy()
self.mySecret = self.mySecret + 1
|