1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
#!/usr/bin/perl use strict; use warnings; use Tk; our $title = "title"; my $label = "label"; our $mw = MainWindow->new; $mw->title($title); # calculate max windows size my ($max_window_width,$max_window_height)=$mw->maxsize(); our $window_size_x = $max_window_width; our $window_size_y = 45; our $window_position_x = 0; our $window_position_y = 0; my $text_position_x = 0; my $text_position_y = 0; # Mainwindow: sizex/y, positionx/y $mw->geometry($window_size_x."x".$window_size_y."+".$window_position_x."+".$window_position_y); #prevents mw from closing $mw->protocol('WM_DELETE_WINDOW' => sub { Funct(); exit;} ); my $label_length = length($label); my ($pre_label, $post_label, $new_label); for (my $text_position_x = $max_window_width; $text_position_x >=0; $text_position_x = $text_position_x - 400) { # $pre_label = " " x $text_position_x; # $post_label = " " x ($max_window_width-$text_position_x-$label_length); # $new_label = $pre_label.$label.$post_label; $new_label = $label; banner($new_label, $text_position_x, $text_position_y); $mw->after(100); } #automatic close after time $mw->after(3000, sub { $mw->destroy; }); MainLoop; exit; ################################################### ################################################### ################################################### sub banner { my $label = shift; my $text_position_x = shift; my $text_position_y = shift; $mw->Label( -text => $label, -font => "Arial -40 bold") -> place (-x => $text_position_x, -y => $text_position_y); }
my $banner_lab = $mw->Label( -fg=> $fgcolor, -bg => $bgcolor, -text => $label, -font => $fonts);
$banner_lab -> place (-x => $text_position_x, -y => $text_position_y);
Exists($banner_lab) or exit;
2011-11-07T10:31:03 a_abelsJetzt habe noch ein Problem: mit $mw->Label(-fg=> $fgcolor, -bg => $bgcolor, -text => $label, -font => $fonts) setze ich ja nur die Hitergrundfarbe dort, wo der Text langläuft. Wie bekomme ich denn den kompletten Hintergrund des Fensters in eine bestimmte Farbe?
my $mw = MainWindow->new(-bg => $bgcolor);
2011-11-07T10:31:03 a_abelsIhr seid echt gut, Leute ;)
$mw->repeat(millisecs, callback);
2011-11-07T12:36:41 a_abelsMit der for-next Schleife habe ich doch nur gearbeitet, weil ich ja den Text von einer bestimmten x-Position $text_position_x = $max_window_width in unterschiedlichen Abständen $text_position_x = $text_position_x - 400 verschieben möchte. Die 400 wird noch durch eine Variable ersetzt.
1 2 3 4 5 6 7 8
for (my $loop = $max_window_width; $loop >= $min_x; $loop = $loop - $bannerspeed) { ............... if ( $loop <= $min_x ) { .............. $loop = $max_window_width; }; usleep(5); }
2011-11-07T12:36:41 a_abelsDie $mw->repeat(millisecs, callback); habe ich schon im Internet angeschaut (bin aber noch nicht schlau draus geworden).
perldoc Tk::after
2011-11-07T12:36:41 a_abelsBeim Posten des Beitrages habe doch Einrückungen für den Quellcode verwendet (!!!), oder meinst Du etwas anderes?