Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5197[/thread]

TK: Sub-Aufruf aus button nur ohne Parameter mögl?: $frame->Button(... -command => $sub)

Leser: 1


<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Herr_Cisie
 2006-06-01 15:41
#45530 #45530
User since
2006-04-10
17 Artikel
BenutzerIn
[default_avatar]
Hallo!

Wieder mal eine Frage.
Ich habe eine kleine Anwendung mit 2 MainLoops (http://board.perl-community.de/cgi-bin....3;t=559), und stehe nun vor folgendem Problem:
Auf beiden Windows soll ein Logfile per Button und Toplevel erreichbar sein.

Das ganze wollte ich steuern, indem ich beim Aufruf per Button dem Sub einen Parameter für das aufrufende "Elternfenster" mitgeb, also z.B.:
Code: (dl )
$frmBtnR3->Button(-text => 'Logfile Anzeigen', -width => 20, -command => [\&ShowLog("Login")])


Leider bricht mir die Verarbeitung mit folgender Fehlermeldung in Widget.pm ab:
Quote
Empty list is not a valid callback at C:/Perl/site/lib/Tk/Widget.pm line 205.
at ccmUpload.pl line 166


Wie schaff ich es, dem Sub-Aufruf durch das Button-Widget einen Parameter mitzugeben?


Danke vorab,
Christoph
renee
 2006-06-01 15:45
#45531 #45531
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das war fast richtig...

So sollte es funktionieren:
Code: (dl )
$frmBtnR3->Button(-text => 'Logfile Anzeigen', -width => 20, -command => [\&ShowLog,"Login"])
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Ishka
 2006-06-01 15:56
#45532 #45532
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
wobei man bedenken muß, das der erste Parameter in der Sub dann $frmBtnR3 ist und erst der zweite "Login".
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Herr_Cisie
 2006-06-01 15:58
#45533 #45533
User since
2006-04-10
17 Artikel
BenutzerIn
[default_avatar]
Tatsache...
Super, vielen Dank für die Antwort!

Woher weißt Du das nur? Gibt es eine gute Doku zu tk mit Beispielen? Der activeperl User Guide ist in dieser Hinsicht echt mies...
Ishka
 2006-06-01 16:07
#45534 #45534
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ich hab das vor schätzungsweise drei Jahren in dem Forum hier gelernt ;)
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
renee
 2006-06-01 16:12
#45535 #45535
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Ishka,01.06.2006, 13:56]wobei man bedenken muß, das der erste Parameter in der Sub dann $frmBtnR3 ist und erst der zweite "Login".[/quote]
nö... Das ist - soweit ich weiß - nur bei bind so...

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl

use strict;
use warnings;
use Tk;

my $mw = tkinit();
$mw->Button(-command => [\&change_text,"test"], -text => 'Drueck mich')->pack();

MainLoop;

sub change_text{
print $_,"\n" for(@_);
}


Nach einem Buttonklick:
Code: (dl )
1
2
C:\>tk.pl
test
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Herr_Cisie
 2006-06-01 16:17
#45536 #45536
User since
2006-04-10
17 Artikel
BenutzerIn
[default_avatar]
Sorry, Ishka, meine Antwort galt renee (bin alt und lahm...).

Und er hat wohl recht: $_[0] ist der übergebene Parameter.

Nochmals zu meiner Frage: Gibt es eine gute tk-Doku mit Beispielen? Gern auch als Buch.
renee
 2006-06-01 16:22
#45537 #45537
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
In unserem Wiki gibt es einWiki:Perl/Tk-Tutorial. Das gibt es auch auf meiner Homepage als PDF (ist aber von Christian Dühl).

Als Buch kann ich da "Mastering Perl/Tk" nennen. Ich selbst habe es aber nicht, kann also nicht sagen, wie gut es wirklich ist. Da es von O'Reilly ist und ich schon gute Sachen über das Buch gehört habe, nehme ich an, dass es ganz brauchbar ist.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Herr_Cisie
 2006-06-01 17:18
#45538 #45538
User since
2006-04-10
17 Artikel
BenutzerIn
[default_avatar]
Das Wiki-Tut hab ich schon "durchgespielt".
An das mit dem Sub-Aufruf mit Paramtern kann ich mich z.B. nicht erinnern...

Das Buch werd ich mir mal anschauen, danke für den Tip!


Gruß,
Christoph
ptk
 2006-06-01 23:45
#45539 #45539
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=renee,01.06.2006, 14:22]Als Buch kann ich da "Mastering Perl/Tk" nennen. Ich selbst habe es aber nicht, kann also nicht sagen, wie gut es wirklich ist. Da es von O'Reilly ist und ich schon gute Sachen über das Buch gehört habe, nehme ich an, dass es ganz brauchbar ist.[/quote]
Klar ist es gut, ich habe ja schließlich vorher drüber geschaut :-)
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2006-06-01 15:41.