User since
2003-09-03
80
Artikel
BenutzerIn
Hallo,
ich hab da mal eine Frage, ich habe vor, ein Event abzugreifen, dann jenes Texttechnisch aufzubereiten. Im Anschluss daran sollte mir ein Text Widget oder Label, was auch immer das Ergebnis anzeigen.
Nun zu meiner eigentlichen Frage, das Textwidget sollte Horzontal verlaufen und der Text sollte darin, z.b. von links nach rechts scrollen, so wie ein News Ticker, ist sowas möglich und wenn ja, wie kann ich das realisieren, bzw. mit welchen Widgtes?
User since
2003-08-04
5872
Artikel
ModeratorIn
Du kannst mit
$text->see(index) angeben, dass dieser Index sichtbar sein soll. Ich habe das allerdings bisher nur in vertikaler Richtung verwendet, ev. funktioniert es aber auch horizontal.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2003-11-28
3645
Artikel
ModeratorIn
Guck dir mal die xview()-Methode von Tk::Text an.
User since
2003-09-03
80
Artikel
BenutzerIn
Hi,
über xview hab ich noch leider gar nix gefunden.
Das mit see->(index)
das kapier ich nicht ganz, welcher index???
Gruß,
Vielen Dank schonmal
User since
2003-11-28
3645
Artikel
ModeratorIn
xview ist in der Tk::Text-Dokumentation erklaert.
User since
2003-08-04
5872
Artikel
ModeratorIn
[quote=ahnungsloser,08.07.2004, 19:49]Hi,
über xview hab ich noch leider gar nix gefunden.
Das mit see->(index)
das kapier ich nicht ganz, welcher index???
Gruß,
Vielen Dank schonmal[/quote]
Siehe perldoc Tk::Text Abschnitt INDICES.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2003-08-04
2145
Artikel
ModeratorIn + EditorIn
Hm. Interessanterweise haben bei mir weder xviewMoveto() noch xviewScroll() irgendetwas sichtbares gemacht, obwohl der Text laenger als das Widget war.
Aber man kann sich ja auch mit einem "Poor Man's Ticker" behelfen. :)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl
use strict;
use warnings;
use Tk;
my $Text = 'Dies ist ein langer Text, der im Label gescrollt wird. ';
my $Mw = MainWindow->new(-title => 'TkTicker');
my $LabelW = $Mw->Label(-textvariable => \$Text)->pack(-expand => 1, -fill => 'x');
$Mw->repeat (100, \&tick);
$Mw->MainLoop;
sub tick {
my $width = $LabelW->cget('width');
return unless $width < length $Text;
$Text = substr($Text,1,length($Text)-1) . substr($Text,0,1);
}
Nur das -expand => 1 hat bei meinem Label irgendwie keine Auswirkungen ... komisch.
User since
2003-11-28
3645
Artikel
ModeratorIn
Was erwartest du bei -expand => 1?
xscroll(moveto => ...) funktioniert auf jeden Fall, dass habe ich letztens
hier bei Perlmonks verwendet.
User since
2003-08-04
2145
Artikel
ModeratorIn + EditorIn
[quote=ptk,09.07.2004, 16:42]Was erwartest du bei -expand => 1?
[/quote]
Dass sich die Groesse des Labels aendert, wenn ich das Fenster in der Groesse aendere - wie es das auch bei einem Text-Widget macht. :)
Quotexscroll(moveto => ...) funktioniert auf jeden Fall, dass habe ich letztens
hier bei Perlmonks verwendet.
Hm. Vielleicht klappt es nur bei einem Scrolled-Widget. Ich hatte eigentlich daran gedacht, ohne den Scrollbalken zu scrollen, so wie es jetzt auch mit dem Label-Widget aussieht.
User since
2003-11-28
3645
Artikel
ModeratorIn
Tut es auch ... faerb doch mal den Hintergrund des Labels mit einer anderen Farbe aus.