Sehr Umfangreiche Webseite zum Programmieren in C Perl CGI, Skripting, Linux, SystemprogrammierungPerl Perl Kurs Skripting Tk-Modul use Tk; Tcl/Tk Canvas Tk Canvas Steuerelement Perl Skript Tk-Modul Tk use Tk Perl mit dem Tk-Modul Teil 12

Steuerelemente - Canvas          zurück zum Inhaltsverzeichnis

Jetzt folgt das Steuerelement Canvas, was soviel bedeutet wie eine Fläche auf der Sie 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 (Linux/Unix):

Steuerelement Canvas Linux/Unix

So siehts aus (MS Windows):

Steuerelement Canvas MS Windows

Hiermit erzeugen Sie auf dem Canvas-Widget mit 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 Sie einen Text an Position x=175 y=15 mit roter Farbe, ein 'Y'. Auch gibt es hierzu wieder viele andere geometrische Formen und Optionen  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 (Linux/Unix):

Steuerelement Canvas Linux/Unix

So siehts aus (MS Windows):

Steuerelement Canvas MS Windows