#!/usr/bin/perl -w package CursorView; use Qt 2.0; @ISA = qw(Qt::Window); $cb_width = 32; $cb_height = 32; $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; $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"; sub new { my $self = shift->SUPER::new(); my @list = ( {'cursor' => Qt::arrowCursor, 'name' => 'arrowCursor' }, {'cursor' => Qt::upArrowCursor, 'name' => 'upArrowCursor' }, {'cursor' => Qt::crossCursor, 'name' => 'crossCursor' }, {'cursor' => Qt::waitCursor, 'name' => 'waitCursor' }, {'cursor' => Qt::ibeamCursor, 'name' => 'ibeamCursor' }, {'cursor' => Qt::sizeVerCursor, 'name' => 'sizeVerCursor' }, {'cursor' => Qt::sizeHorCursor, 'name' => 'sizeHorCursor' }, {'cursor' => Qt::sizeBDiagCursor, 'name' => 'sizeBDiagCursor'}, {'cursor' => Qt::sizeFDiagCursor, 'name' => 'sizeFDiagCursor'}, {'cursor' => Qt::sizeAllCursor, 'name' => 'sizeAllCursor' }, ); $self->setCaption('CursorView'); my $label; my $i = 0; my($x, $y); for($y = 0; $y < 2; $y++) { for($x = 0; $x < 5; $x++) { $label = Qt::Label->new($self); $label->setCursor($list[$i]{'cursor'}); $label->setText($list[$i]{'name'}); $label->setAlignment(Qt::AlignCenter); $label->setFrameStyle(Qt::Frame::Box | Qt::Frame::Raised); $label->setGeometry(10+$x*110, 10+$y*50, 100, 40); $i++; } } my $cb = Qt::Bitmap->new($cb_width, $cb_height, $cb_bits, 1); my $cm = Qt::Bitmap->new($cm_width, $cm_height, $cm_bits, 1); my $custom = Qt::Cursor->new($cb, $cm); $label = Qt::Label->new($self); $label->setCursor($custom); $label->setText('Custom bitmap cursor'); $label->setAlignment(Qt::AlignCenter); $label->setFrameStyle(Qt::Frame::Box | Qt::Frame::Raised); $label->setGeometry(10, 110, 540, 40); $self->resize(20+5*110, 20+3*50); return $self; } package main; use Qt 2.0; import Qt::app; $v = CursorView->new; $app->setMainWidget($v); $v->show(); exit $app->exec();