Schrift
[thread]4895[/thread]

place() in Frame verankern: anstatt im MainWindow



<< >> 10 Einträge, 1 Seite
Froschpopo
 2005-04-02 15:12
#43104 #43104
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
wie kann ich nen place an einem Frame ausrichten?
So wie ich das bis jetzt mache, richten sich die xy-koordinaten immer nach dem MainWinderow. Ich würde als xy-Basis gerne ein Frame haben.
Code: (dl )
$frame = $nickname->place(-x=>27, -y => 33);
coax
 2005-04-02 17:30
#43105 #43105
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
$widget->place(-x => $x, -y => $y, -in => $frame);
,,Das perlt aber heute wieder...'' -- Dittsche
Froschpopo
 2005-04-02 17:50
#43106 #43106
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
my $pane = $config{MainWindow}->Scrolled(
        "Pane", -scrollbars => 'e',
        -bg => 'black',
        -width=>300,
        -height=>200)->pack();

$nickname = $config{MainWindow}->Label(
            -text => "Gina Wildd",
            -background => 'white',
            -font => $config{Font}
);

$nickname -> place(-x=>27, -y => 32, -in => $pane);

Also die Scrollbar funzt ganz gut, aber anscheinend will sich place nicht verankern lassen.\n\n

<!--EDIT|Froschpopo|1112449921-->
coax
 2005-04-02 17:56
#43107 #43107
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Mit place legst du die Widgets an einen festen Punkt, glaube nicht dass sich das mit einen Scrolled-Pane oder -Frame so verwenden laesst, da solltest du schon pack() verwenden.
Wegen welchen Gruenden nochmal machst du das nicht ?
,,Das perlt aber heute wieder...'' -- Dittsche
Froschpopo
 2005-04-02 18:02
#43108 #43108
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Der Inhalt in diesem Frame soll dynamisch sein. Da kommt ne Liste mit Namen übereinander rein.
Ich hab da sone Variable mit der definiere ich den Zeilenabstand, und dann mach ich einfach immer:
Code: (dl )
1
2
3
4
5
6
my $spacer = 0;
while(...)
#...
$spacer = $spacer + 18;
$mw->place(-x=>2, -y=>$spacer);
}

Wüsste nicht wie ich es sonst machen sollte
coax
 2005-04-02 18:23
#43109 #43109
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Verwende doch die padding-Option:
Code: (dl )
1
2
3
4
5
  my $sp = $mw->Scrolled('Pane')->pack();

 foreach my $name (qw( bli bla blubb )) {
     $sp->Label(-text => $name)->pack(-pady => 1);
 }
,,Das perlt aber heute wieder...'' -- Dittsche
Froschpopo
 2005-04-02 18:35
#43110 #43110
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
super, jetzt klappts ! Allerdings sind die Widgets jetzt alle Zentriert, wie krieg ich die Linksbündig?

wenn ich -side => 'left' mache, stehen die teile alle nebeneinander, das will ich ja auch nicht
Froschpopo
 2005-04-02 19:12
#43111 #43111
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
klappt jetzt mal mit anchor => 'w'
Crian
 2005-04-04 19:31
#43112 #43112
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Liest Du manchmal auch die entsprechenden perldoc's bevor Du hier postest? Oder lässt Du generell gern andere die Arbeit für Dich machen?
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
Froschpopo
 2005-04-04 19:47
#43113 #43113
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ich hatte in der perldoc nichts darüber gelesen, jedoch auf irgendner seite auf die icch durch google gestoßen bin. da stand nur leider nicht wies geht. hätt ja sein können, dass es dafür keine funktion gibt, vielleicht aber einen trick. tricks sind eher selten in perldoc aufgeführt.
<< >> 10 Einträge, 1 Seite



View all threads created 2005-04-02 15:12.