You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pytqt/examples3/cursor.py

115 lines
4.8 KiB

#!/usr/bin/env python
"""$Id: cursor.py,v 1.1 2003/07/01 14:18:37 phil Exp $
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of an example program for Qt. This example
** program may be used, distributed and modified without limitation.
**
***************************************************************************"""
import sys
from qt import *
# cb_bits and cm_bits were generated by X bitmap program.
cb_width = 32
cb_height = 32
# cursor bitmap
cb_bits = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x0f\x00" \
"\x00\x06\x30\x00\x80\x01\xc0\x00\x40\x00\x00\x01" \
"\x20\x00\x00\x02\x10\x00\x00\x04\x08\x3e\x3e\x08" \
"\x08\x03\xe0\x08\xc4\x00\x00\x11\x04\x1e\x78\x10" \
"\x02\x0c\x30\x20\x02\x40\x00\x20\x02\x40\x00\x20" \
"\x02\x40\x00\x20\x02\x20\x04\x20\x02\x20\x04\x20" \
"\x02\x10\x08\x20\x02\x08\x08\x20\x02\xf0\x07\x20" \
"\x04\x00\x00\x10\x04\x00\x00\x10\x08\x00\xc0\x08" \
"\x08\x3c\x30\x08\x10\xe6\x19\x04\x20\x00\x0f\x02" \
"\x40\x00\x00\x01\x80\x01\xc0\x00\x00\x06\x30\x00" \
"\x00\xf8\x0f\x00\x00\x00\x00\x00"
cm_width = 32
cm_height = 32
# cursor bitmap mask
cm_bits = "\x00\x00\x00\x00\x00\xf8\x1f\x00\x00\xfe\x3f\x00" \
"\x80\x07\xf0\x00\xc0\x01\xc0\x01\x60\x00\x00\x03" \
"\x30\x00\x00\x06\x18\x00\x00\x0c\x0c\x3e\x3e\x18" \
"\x0e\x03\xe0\x18\xc6\x00\x00\x31\x07\x1e\x78\x30" \
"\x03\x0c\x30\x60\x03\x40\x00\x60\x03\x40\x00\x60" \
"\x03\x40\x00\x60\x03\x20\x04\x60\x03\x20\x04\x60" \
"\x03\x10\x08\x60\x03\x08\x08\x60\x03\xf0\x07\x60" \
"\x06\x00\x00\x30\x06\x00\x00\x30\x0c\x00\xc0\x18" \
"\x0c\x3c\x30\x18\x18\xe6\x19\x0c\x30\x00\x0f\x06" \
"\x60\x00\x00\x03\xc0\x01\xc0\x01\x80\x07\xf0\x00" \
"\x00\xfe\x3f\x00\x00\xf8\x0f\x00"
# The CursorView contains many labels with different cursors.
class CursorView( QWidget ): # cursor view
def __init__( self ):
QWidget.__init__( self )
# Constructs a cursor view.
#enum CursorShape { ArrowCursor, UpArrowCursor, CrossCursor, WaitCursor, IbeamCursor, SizeVerCursor, SizeHorCursor, SizeBDiagCursor, SizeFDiagCursor, SizeAllCursor, BlankCursor, SplitVCursor, SplitHCursor, PointingHandCursor, ForbiddenCursor, WhatsThisCursor, LastCursor = WhatsThisCursor, BitmapCursor = 24 }
shape = [
"ArrowCursor", "UpArrowCursor", "CrossCursor",
"WaitCursor", "IbeamCursor", "SizeVerCursor",
"SizeHorCursor", "SizeBDiagCursor", "SizeFDiagCursor",
"SizeAllCursor", "BlankCursor", "SplitVCursor",
"SplitHCursor", "PointingHandCursor", "ForbiddenCursor",
"WhatsThisCursor"
]
name = [
"standard arrow cursor", "upwards arrow",
"crosshair", "hourglass/watch",
"ibeam/text entry", "vertical resize",
"horizontal resize", "diagonal resize (/)",
"diagonal resize (\)", "all directions resize",
"blank/invisible cursor", "vertical splitting",
"horziontal splitting", "a pointing hand",
"a slashed circle", "an arrow with a question mark"
]
self.setCaption( "CursorView" ) # set window caption
grid = QGridLayout( self, 5, 4, 20 )
i=0
for y in range( 0, 4, 1 ) : # create the small labels
for x in range( 0, 4, 1 ) :
label = QLabel( self )
label.setCursor( QCursor(i) )
label.setText( shape[i] );
label.setAlignment( self.AlignCenter )
label.setFrameStyle( QFrame.Box | QFrame.Raised )
grid.addWidget( label, x, y )
QToolTip.add( label, name[i] )
i += 1
cb = QBitmap( cb_width, cb_height, cb_bits, True )
cm = QBitmap( cm_width, cm_height, cm_bits, True )
custom = QCursor( cb, cm ) # create bitmap cursor
label = QLabel( self ) # create the big label
label.setCursor( custom )
label.setText( "Custom bitmap cursor" )
QToolTip.add( label, "custom bitmap cursor" )
label.setAlignment( self.AlignCenter )
label.setFrameStyle( QFrame.Box | QFrame.Sunken )
grid.addMultiCellWidget( label, 4, 4, 0, 3 )
# Create and display a CursorView.
def main( args ):
a = QApplication(sys.argv) # application object
v = CursorView() # cursor view
v.setCaption( "Qt Example - Cursors" )
a.setMainWidget( v )
v.show()
a.exec_loop()
if __name__=="__main__":
main(sys.argv)