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

Bei resize Widgets mitvergrößern



<< >> 9 Einträge, 1 Seite
Froschpopo
 2005-04-27 20:54
#43740 #43740
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ich hab ne Funktion:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sub MainChannel {
$config{MainChannel} = $config{MainWindow}->Toplevel(
-width => 350,
-height=> 350,
-title => "Chatfenster"
);
$config{ScreenWidth}=$config{ScreenWidth}-400;
$config{ScreenHeight}=$config{ScreenHeight}-200;
$config{MainChannel}->geometry("+$config{ScreenWidth}+200");
$config{ChannelFrame} = $config{MainChannel}->Frame()->pack;
$config{ChannelFrame}->Scrolled(
"Pane",
-borderwidth => 4,
-scrollbars => 'e',
-bg => 'white',
-width=>350,
-height=>280,
-sticky => 'nw'
)->pack();

}

wenn jetzt das Fenster vergrößert wird, bleibt das Frame jedoch klein. Wie kann ich das verhindern? Ich möchte, dass das Scolled-Frame stets den ganzen Bildschirm ausfüllt.
Froschpopo
 2005-04-27 21:24
#43741 #43741
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
also bei pack() funktioniert das mit -fill und -both... aber ich brauch noch was für grid()

allerdings reagieren die nicht auf eine spätere veränderung des fensters. wenn ich das programm lade, sind alle widgets auf maximale größe. aber wenn ich das fenster dann mit der maus resize dann bleiben die widgets unverändert\n\n

<!--EDIT|Froschpopo|1114622778-->
Ishka
 2005-04-27 21:34
#43742 #43742
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Für Laufzeitveränderungen gibt es einerseits Tk::Adjuster, andererseits auch ne Methode, die immer dann aufgerufen wird, wenn das Fenster in der Größe verändert wird, allerdings weiß ich da nicht mehr, wie es heißt.
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}
Froschpopo
 2005-04-27 21:44
#43743 #43743
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
also ich hab ja diesen code hier:
Code: (dl )
1
2
3
# Beispielcode:

$entry = $mw->Entry()->pack(-fill => 'x');

meine Idee war eigentlich festzustellen wenn eine Veränderung stattfindet und dann nen $entry->update() zu machen. Aber woher weiss ich, wenn jemand ein resize macht?
ptk
 2005-04-27 21:53
#43744 #43744
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Man bekommt ein <Configure> event.

Fuer grid muss man mit sticky arbeiten und gridColumnconfigure und gridRowconfigure geschickt aufrufen (wurde bestimmt schon mal im Forum behandelt).
Froschpopo
 2005-04-27 23:25
#43745 #43745
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
wie meinst du das, man bekommt ein configure-event ?
Froschpopo
 2005-04-27 23:53
#43746 #43746
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ok eventbla kann man vergessen, danke trotzdem... klappt mit expand und fill...
ptk
 2005-04-28 13:30
#43747 #43747
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Froschpopo,27.04.2005, 21:25]wie meinst du das, man bekommt ein configure-event ?[/quote]
Code: (dl )
$widget->bind("<Configure>" => sub { ... widget wurde verschoben/vergroessert/verkleinert, tue etwas ...})
pktm
 2007-02-19 21:37
#43748 #43748
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
[quote=ptk,27.04.2005, 19:53](wurde bestimmt schon mal im Forum behandelt)[/quote]
Nein. Es wurde zwar schon mehrere Male gefragt, aber es kam nie eine Lösung bei rum.
http://www.intergastro-service.de (mein erstes CMS :) )
<< >> 9 Einträge, 1 Seite



View all threads created 2005-04-27 20:54.