#!/usr/bin/perl -w use strict; #............................................................... MyButton package MyButton; use Qt; use Qt::isa qw(Qt::PushButton); use Qt::attributes qw(zeit); use Qt::slots wasClicked => [], change => ['int', 'int']; use Qt::signals changeIt => ['int', 'int']; sub NEW { shift->SUPER::NEW(@_[0..2]); setText(" Klicke mich\ndoch einfach"); zeit = Qt::Time; zeit->start; this->connect(this, SIGNAL 'clicked()', SLOT 'wasClicked()'); this->connect(this, SIGNAL 'changeIt(int,int)', SLOT 'change(int,int)'); } sub wasClicked { my $w = width(); my $h = height(); setText( "Breite: $w, Höhe: $h\n". "Zeit: ". zeit->elapsed/1000 . " Sek." ); emit changeIt($w, $h); } sub change { my ($w, $h) = @_; print STDERR "Breite: $w, Höhe: $h \n"; } sub DESTROY { print STDERR "Tschuess\n" } #......................................................................... main package main; use Qt; use MyButton; my $a = Qt::Application(\@ARGV); my $w = MyButton; $a->setMainWidget($w); $w->show; exit $a->exec;