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

Zweitfenster durch 2. MainLoop?: Anmelde- und Arbeitsfenster benötigt (Seite 2)



<< |< 1 2 >| >> 12 Einträge, 2 Seiten
ptk
 2006-04-13 23:46
#45324 #45324
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Problematisch wird es, wenn in einem MainWindows Ressourcen wie Bilder verwendet werden, die innerhalb eines anderen MainWindows erzeugt wurden. Das hier gibt einen Fehler:
Code: (dl )
1
2
3
4
5
use Tk;
my $mw1 = MainWindow->new;
my $mw2 = MainWindow->new;
my $p1 = $mw1->Photo(-file => Tk->findINC("Xcamel.gif"));
$mw2->Label(-image => $p1)->pack;

So etwas passiert häufig bei Widgets, wenn z.B. ein Photo in einer globalen Variablen gecachet wird. Tk::FBox (getOpenFile) hatte das Problem bis zur Version 804 von Tk. Probleme in anderen Widgets sind womöglich noch unentdeckt. Und wahrscheinlich betrifft das nicht nur Bilder, sondern auch Fonts und vielleicht andere Ressourcen.
coax
 2006-04-14 01:46
#45325 #45325
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Bin mir nicht sicher ob ich die eigentliche Problematik verstanden habe. Warum sollte das Toplevel fuer Eingaben ungeeignet sein?

Vielleicht hilft dir dies ja weiter:
Code: (dl )
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
# AnmeldeFenster.pl

 use strict;
 use warnings;

 use Tk;

 my $mw = MainWindow->new();

 $mw->withdraw();
 $mw->Label(-text => "You're successful logged in!")->pack();

 my $tp_login = $mw->Toplevel();

 $tp_login->title('Login');

 my $l_msg = $tp_login->Label(-foreground => 'black')->grid('-');

 my $l_login = $tp_login->Label(-text => 'Login:');

 my $e_login = $tp_login->Entry();

 $l_login->grid($e_login);

 my $l_passwd = $tp_login->Label(-text => 'Password:');

 my $e_passwd = $tp_login->Entry(-show => '*');

 $l_passwd->grid($e_passwd);

 my $b_login = $tp_login->Button(-text => 'Login',
                                 -command => \&login);

 my $b_cancel = $tp_login->Button(-text => 'Cancel',
                                  -command => \&exit_app);

 $b_login->grid($b_cancel);

 $tp_login->grab();
 $tp_login->focus();

 MainLoop;

 sub login {
     my $login =  $e_login->get();
     my $passwd = $e_passwd->get();

     if( $login eq 'admin' and $passwd eq 'secret') {
         $tp_login->grabRelease();
         $tp_login->destroy();
         $mw->deiconify();
         $mw->raise();
     }
     else {

         $l_msg->configure(-text => 'Invalid login');
         $e_login->configure(-text => '');
         $e_passwd->configure(-text => '');
     }
 }

 sub exit_app { Tk::exit; }


Grusz Christian.
,,Das perlt aber heute wieder...'' -- Dittsche
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2006-04-10 11:32.