User since
2003-08-15
2653
Artikel
BenutzerIn
ich hab nen Frontend in Tk für tail gebaut um so serverstatistiken in fast-Echtzeit(arbeite mit repeat) einlesen zu können. Das ganze funktioniert auch prima, bis auf dass der Scrollbalken immer nur den alten Teil des Logfiles anzeigt.
Die neusten Einträge werden nämlich immer unten in das Pane eingeordnet.
Gibt es da auch eine Möglichkeit den Scrollbalken von dem Pane immer nach unten zu rollen?\n\n
<!--EDIT|Froschpopo|1113860524-->
User since
2003-08-15
2653
Artikel
BenutzerIn
ich zähle einfach die zeilen und mach dann nen yview(scroll => $counter}
so ists am besten...
User since
2003-08-15
2653
Artikel
BenutzerIn
mal ne Frage:
$counter++;
...
$config{pane}->yview(scroll => $counter, 10);
der scrollt zwar, aber die letzte unterste Zeile zeigt er nicht an. Aber es ist immer nur eine Zeile die er nicht mitscrollt ! Wieso?
User since
2003-08-04
5872
Artikel
ModeratorIn
Zitat aus perldoc Tk::Pane:
*$pane*->see(*$widget* ?,*options*?)
Adjusts the view so that *$widget* is visable. Aditional parameters
in *options-value* pairs can be passed, each *option-value* pair
must be one of the following
-anchor => *anchor*
Specifies how to make the widget visable. If not given then
as much of the widget as possible is made visable.
Possible values are n, s, w, e, nw, ne, sw and se. This will
cause an edge on the widget to be aligned with the
corresponding edge on the pane. for example nw will cause
the top left of the widget to be placed at the top left of
the pane. s will cause the bottom of the widget to be placed
at the bottom of the pane, and as much of the widget as
possible made visable in the x direction.
\n\n
<!--EDIT|Crian|1113911147-->
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
Hilft es, wenn du stattdessen yview("moveto" => ...) verwendest?
User since
2003-08-15
2653
Artikel
BenutzerIn
da passiert dasselbe... er scrollt einwandfrei, aber die letzte Zeile ist nie mit drin
User since
2003-08-15
2653
Artikel
BenutzerIn
hmm irgendwie is see auch nicht das wahre:
$config{pane} = $mw->Scrolled(
sticky => 'nw'
-width => 50,
-height => 50
)->pack();
for (1) {
$counter++;
$config{"pane".$counter} = $config{pane}->Label
-text "Dieser text steht immer unten"
)->pack;
$config{pane}->see($config{"pane".$counter}, -anchor => 's');
}
jetzt scrollt er nämlich garnichtmehr. Mit yview hat er ja wenigstens alles bis auf die letzte Zeile angezeigt.
User since
2003-11-28
3645
Artikel
ModeratorIn
Es waere schoen, wenn deine Skripte oder wenigstens die Schnipsel lauffaehig waeren.
Und es waere ganz gut, wenn du dir eventbasierte Denken fuer die GUI-Programmierung aneignen wuerdest. Ich wette naemlich, dass einfach nur ein update() an der richtigen Stelle fehlt --- unabhaengig von der Verwendung von see oder yview.
User since
2003-08-15
2653
Artikel
BenutzerIn
das moveto funzt auch, bis auf dass er immer nur bis zur vorletzten zeile scrollt.