|
![ein Kapitel weiter](../weiter.gif)
Nun wollen wir uns ansehen wie wir ein Canvas (deutsch=Segeltuch) erstellen können.
Was soviel bedeutet wie ein Fläche auf der wir etwas z.B. Zeichnen können.........
#!/usr/bin/perl -w
use strict;
use Tk;
my $window= MainWindow->new;
my $c1 = $window->Canvas(-width => '350', -height => '350')->pack;
$c1->createLine(25, 175, 325, 175, -arrow => 'last');
$c1->createText(15, 175, -fill => 'blue', -text => 'X');
$c1->createLine(175, 25, 175, 325, -arrow => 'last');
$c1->createText(175, 15, -fill => 'red', -text => 'Y');
MainLoop;
So siehts aus :
Hiermit erzeugen wir auf unserem Canvas-Widget von der Größe 350x350 ein
x/y-Koordinatenfeld. Für Canvas-Widget stehen einigen Funktionen zur Verfügung zum
Zeichnen von Formen. Diese beginnen meist mit create...
$c1->createLine(25, 175, 325, 175, -arrow => 'last');
...bedeutet z.B. der Anfangspunkt der Linie ist an Position x=25 und y=175 und der
Endpunkt an Position x=325 und y=175. Mit arrow=last fügen wir einen Pfeil am Ende
der Linie an. Es wäre z.B. noch die Angabe für arrow möglich gewesen wie :
first=am Anfang und both=beide Seiten.
Mit.......
$c1->createText(175, 15, -fill => 'red', -text => 'Y');
...erzeugen wir einen Text an Position x=175 y=15 mit roter Farbe, ein 'Y'. Auch gibt es
hierzu wieder viele andere geometrische Formen und Optionen dazu wie z.B.........
#!/usr/bin/perl -w
use strict;
use Tk;
my $window= MainWindow->new;
my $c1 = $window->Canvas(-width => '350', -height => '350')->pack;
my $schalter1=$window->
Button(-text => "createArc", -command => \&arc)->
pack(-side => 'left');
my $schalter2=$window->
Button(-text => "createLine",-command => \&line)->
pack(-side=> 'left');
my $schalter3=$window->
Button(-text => "createOval",-command => \&oval)->
pack(-side=> 'left');
my $schalter4=$window->
Button(-text => "createRectangle",-command => \&rect)->
pack(-side=> 'left');
my $schalter5=$window->
Button(-text => "createText",-command => \&text)->
pack(-side=> 'left');
my $schalter6=$window->
Button(-text=>"Beenden", -command => [ $window => 'destroy'] )->
pack(-side => 'left');
sub arc{
$c1->createArc(25, 100, 150, 300, -fill => 'blue');
}
sub line{
$c1->createLine(25, 25, 325, 325, -fill => 'red');
}
sub oval{
$c1->createOval(35, 25, 100,100, -fill => 'yellow');
}
sub rect{
$c1->createRectangle(150, 150, 300, 300, -fill => 'green');
}
sub text{
$c1->createText(175, 10, -text => 'Diese ist ein Textbeispiel');
}
MainLoop;
So siehts aus :
![ein Kapitel weiter](../weiter.gif)
© 2001,2002 Jürgen Wolf
|