Schrift
[thread]11045[/thread]

Panedwindow - Seite einblenden/ausblenden

Leser: 1


<< >> 9 Einträge, 1 Seite
Gast Gast
 2007-12-19 14:41
#104031 #104031
Hallo,

habe folgenden Beispiel-Code erstellt:
Code (perl): (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
use strict;

use Tk;
#
# MainWindow
#
my $mw = MainWindow->new;
#
# Menu
#
my $m = $mw->Menu(qw/-type menubar/);
$mw->configure(-menu => $m);

my $ma = $m->cascade(-tearoff => 0, -label => '~Ansicht');

my $pr_sicht = 1;

$ma->checkbutton(
        -label => 'Projekt-Explorer',
        -variable => \$pr_sicht,
        -command => sub {
                # Einblenden/Ausblenden???
        }
);

#
# PanedWindow
#
my $panel = $mw->Panedwindow(qw/-orient horizontal/)->pack;

my $fr_left = $mw->Frame(qw/-height 100 -width 100/)->pack;;
my $fr_right = $mw->Frame(qw/-height 100 -width 100/)->pack;

$panel->add($fr_left, $fr_right);

MainLoop;


Nun möchte ich per Menü die linke Seite einblenden bzw. Ausblenden lassen. Geht das überhaupt? Könnt ihr mir bitte weiter helfen?

Danke!

Gru, Alex
renee
 2007-12-19 14:50
#104032 #104032
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (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
#!/usr/bin/perl

use strict;

use Tk;
#
# MainWindow
#
my $mw = MainWindow->new;
#
# Menu
#
my $m = $mw->Menu(qw/-type menubar/);
$mw->configure(-menu => $m);

my $ma = $m->cascade(-tearoff => 0, -label => '~Ansicht');

my $pr_sicht = 1;

#
# PanedWindow
#
my $panel    = $mw->Panedwindow(qw/-orient horizontal/)->pack;
my $fr_left  = $mw->Frame(qw/-height 100 -width 100/)->pack;;
my $fr_right = $mw->Frame(qw/-height 100 -width 100/)->pack;

$panel->add($fr_left, $fr_right);

$ma->checkbutton(
        -label => 'Projekt-Explorer',
        -variable => \$pr_sicht,
        -command => sub {
                unless( $pr_sicht ){
                   $panel->packForget;
                }
                else{
                   $panel->pack;
                }
        }
);

MainLoop;
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/
Gast Gast
 2007-12-20 10:29
#104060 #104060
Hallo renee,

erst mal vielen Dank für den Tipp. Leider ist es nicht was ich meine...

Habe den Beispiel etwas erweitert um zu verdeutlichen was ich meine:
Code (perl): (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
use strict;

use Tk;
use Tk::HList;
#
# MainWindow
#
my $mw = MainWindow->new;
#
# Menu
#
my $m = $mw->Menu(qw/-type menubar/);
$mw->configure(-menu => $m);

my $ma = $m->cascade(-tearoff => 0, -label => '~Ansicht');

my $pr_sicht = 1;

#
# PanedWindow
#
my $panel = $mw->Panedwindow(qw/-orient horizontal/)->pack;

my $fr_left = $mw->Frame->pack;;
my $fr_right = $mw->Frame->pack;

$panel->add($fr_left, $fr_right);

my $hlist = $fr_left->HList(qw/-bg white/)
        ->pack(qw/-expand yes -fill both/);

my $data  = $fr_right->Canvas(qw/-bg white/)
        ->pack;

$ma->checkbutton(
        -label => 'Projekt-Explorer',
        -variable => \$pr_sicht,
        -command => sub {
                 unless( $pr_sicht ){
                    $panel->packForget;
                 }
                 else{
                    $panel->pack;
                 }

        }
);

MainLoop;


Wenn ich den Code so teste, wird das ganze Panelwindow ausgeblendet/versteckt. Ich brauche aber die Möglichkeit, wie ich nur die Linke seite (HList) ausblenden bzw. verkleiner kann. Die Canvas soll hier immer da sein.

Auch wenn ich nur HList ausblende mit "$hlist->packForget" bleibt die linke Seite halt leer. Sollte aber verkleinert werden...

Wenn ich versuche die linke Frame auszublenden "$fr_left->packForget" kommt leider nur Mist dabei raus. Also auch nicht das Richtige.

Was soll ich hier machen? Hat sonst noch jemand einen Tipp?

Besten Dank!
Alex
Strat
 2007-12-20 12:43
#104064 #104064
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
hilft es was, wenn du beim canvas-pack angibst:
Code (perl): (dl )
->pack( -fill => 'both', -expand => 1 );
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Gast Gast
 2007-12-20 12:48
#104065 #104065
nein, bringt leider nichts...
Strat
 2007-12-20 12:55
#104066 #104066
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
dann faellt mir nur noch die harte tour ein, naemlich dem canvas ein packForget zu verpassen und ihn danach wieder zu packen... schoen finde ich das allerdings nicht...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Gast Gast
 2007-12-20 13:00
#104067 #104067
Habe ich auch schon vermutet, das das so nicht geht.

Was sollst, muß man durch... Werde ich wohl versuchen die App so umzuschreiben. Danke für den Vorschlag!

Gruß, Alex
Spieler
 2007-12-21 01:42
#104082 #104082
User since
2007-09-24
70 Artikel
BenutzerIn
[default_avatar]
Hallo,

willst du dies:
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
use warnings;

use strict;

use Tk;
use Tk::HList;
#
# MainWindow
#
my $mw = MainWindow->new;
#
# Menu
#
my $m = $mw->Menu(qw/-type menubar/);
$mw->configure(-menu => $m);

my $ma = $m->cascade(-tearoff => 0, -label => '~Ansicht');

my $pr_sicht = 1;

#
# PanedWindow
#
my $panel = $mw->Panedwindow(qw/-orient horizontal/)->pack;

my $fr_left = $mw->Frame->pack;;
my $fr_right = $mw->Frame->pack;

$panel->add($fr_left, $fr_right);

my $hlist = $fr_left->HList(qw/-bg white/)
->pack(qw/-expand yes -fill both/);

my $data = $fr_right->Canvas(qw/-bg white/)
->pack;

$ma->checkbutton(
-label => 'Projekt-Explorer',
-variable => \$pr_sicht,
-command => sub {
unless( $pr_sicht ){
$panel->forget($fr_left);
}
else{
$panel->add($fr_left,-before => $fr_right);;
}

}
);

MainLoop;


Grüsse, Christoph
Gast Gast
 2007-12-21 16:17
#104095 #104095
Oh ja. Sieht schon mal sehr gut aus.

Vielen Dank!

Alex
<< >> 9 Einträge, 1 Seite



View all threads created 2007-12-19 14:41.