User since
2005-04-13
625
Artikel
BenutzerIn
Hi,
kann ich in Tk irgendwie, wenn man beispielsweise einen Button das erste mal klickt, ein Popup mit einem GIF drinnen öffnen und dieses dann nach beispielsweise 5 sekunden wieder schließen?
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
http://perl-tutor.de
User since
2003-08-04
14371
Artikel
ModeratorIn
Als Anfang...
#! /usr/bin/perl
use strict;
use warnings;
use Tk;
my $mw = MainWindow->new();
$mw->Button(-text => 'offen', -command => \&topl)->pack();
MainLoop;
sub topl{
my $toplevel = $mw->Toplevel(-title => 'Test');
local $SIG{ALRM} = sub {$toplevel->destroy()};
alarm(6);
}
\n\n
<!--EDIT|renee|1114676414-->
User since
2003-08-04
5872
Artikel
ModeratorIn
Du kannst auch Tks after-Funktion verwenden.
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
14371
Artikel
ModeratorIn
...Was wahrscheinlich besser ist...
User since
2003-08-04
5872
Artikel
ModeratorIn
Ich tipp mal drauf, dass die intern auch alarm benutzt, oder etwas ähnliches, man kann jedenfals feinere Zeitunterteilungen verwenden.
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
Ich glaube nicht, dass after und repeat alarm() verwenden. Die beiden Methoden unterbrechen *niemals* ein laufendes Programm. Der Callback von after und repeat kann nur ausgefuehrt werden, wenn das Programm sich in der MainLoop befindet und schlaeft, oder wenn update() aufgerufen wird.
User since
2003-08-04
5872
Artikel
ModeratorIn
Ach ja. Dann wird das wohl "nur" einen Event für die Loop erzeugen.
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-15
2653
Artikel
BenutzerIn
[quote=ptk,28.04.2005, 11:24]Ich glaube nicht, dass after und repeat alarm() verwenden. Die beiden Methoden unterbrechen *niemals* ein laufendes Programm. Der Callback von after und repeat kann nur ausgefuehrt werden, wenn das Programm sich in der MainLoop befindet und schlaeft, oder wenn update() aufgerufen wird.[/quote]
ist das nicht fast schon sowas wie ein Mini-Thread ? Wenn der laufende Prozess dadurch nicht beeinflusst wird, dann muss sich after,-repeat ja das Script irgendwie vorher kopieren um zu wissen was darin vorkommt, oder steh ich aufm schlauch...?\n\n
<!--EDIT|Froschpopo|1114719049-->
User since
2003-11-28
3645
Artikel
ModeratorIn
Ein richtiger Thread ist das nicht, weil du bei einem after/repeat-Callback sicher sein kannst, dass er bis zu Ende ausgefuehrt wird, ohne dass ein anderer Callback dazwischenfunkt. Es sei denn, update() wird im Callback aufgerufen. Ein echter Thread kann ohne eigenes Zutun von anderen Threads unterbrochen werden.