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

Richtig Positionieren: Aber wie???



<< |< 1 2 >| >> 16 Einträge, 2 Seiten
Patrick
 2004-01-21 11:06
#46745 #46745
User since
2004-01-07
56 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich möchte meine Textfelder und Labels im Fenster richtig anordnen!
Dies soll etwa so aussehen
Code: (dl )
1
2
3
Label: <Textfeld>   [Freiraum]     Label: <Textfeld>   [Freiraum]     Label: <Textfeld>
Label: <Textfeld>   [Freiraum]     Label: <Textfeld>   [Freiraum]     Label: <Textfeld>
Label: <Textfeld>   [Freiraum]     Label: <Textfeld>   [Freiraum]     Label: <Textfeld>


Nun habe ich versucht mit -anchor und ähnlichem zu arbeiten.
Doch ohne Erfolg.
Bei einem Versuch
$right1 = $fup->Frame()->pack(-side => left -padx => 5);
-side mit padx zu kombinieren kommen nur Fehlermeldungen!

Frage nun:

Wie packe ich das mit den Frames und dem ganzen Kram richtig an??

Vielen Dank im Voraus!
Mfg
Paddy

Perl ist göttlich, die Kunst besteht darin Perl anwenden zu können.
Crian
 2004-01-21 12:35
#46746 #46746
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Poste doch mal bite den ganzen Tk-Definitionsteil.
Im Prinzip nehme ich spezielle Anordnungen mit Frames vor.

Kennst Du schon Tk::LabEntry? Das Kann Dir das Leben bei Label/Entry-Kombinationen erleichtern.

( http://search.cpan.org/author/NI-S/Tk-804.025_beta14/Tk/LabEntry.pm )

Naja, ich schreib gerade an einem Beispiel, das Poste ich gleich...
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
Crian
 2004-01-21 12:45
#46747 #46747
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Das Beispiel musst Du natürlich an Deine Belange anpassen, ggf. musst Du auch die Frame-Struktur ändern... schaus Dir erstmal an:

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#!/usr/bin/perl
use strict;
use warnings;

use Tk;

tk_main();
MainLoop();
exit;

sub tk_main {
my $mw = new MainWindow;
$mw->title("Anordnungen von Labels und Entrys");

# +---------------------------------------------------+
# | +-----------+ +-----------+ +-----------+ |
# | | Lab.Entr. + + Lab.Entr. + + Lab.Entr. + |
# | +-----------+ +-----------+ +-----------+ |-fa
# | +-----------+ +-----------+ +-----------+ |
# | | Lab.Entr. + + Lab.Entr. + + Lab.Entr. + |
# | +-----------+ +-----------+ +-----------+ |
# | +-----------+ +-----------+ +-----------+ |
# | | Lab.Entr. + + Lab.Entr. + + Lab.Entr. + |
# | +-----------+ +-----------+ +-----------+ |
# +---------------------------------------------------+
# fl fm fr
# flo fmo fro
# flm fmm frm
# flu fmu fru

# äußerer Frame:
my $fa = $mw->Frame(
)
->pack(-side => 'top',
-expand => 1,
-fill => 'both',
);

# Frame links:
my $fl = $fa->Frame(
)
->pack(-side => 'left',
-expand => 1,
-fill => 'y',
);

# Frame mitte:
my $fm = $fa->Frame(
)
->pack(-side => 'left',
-expand => 1,
-fill => 'both',
);

# Frame rechts:
my $fr = $fa->Frame(
)
->pack(-side => 'right',
-expand => 1,
-fill => 'y',
);


# Frame links oben:
my $flo = $fl->Frame(
)
->pack(-side => 'top',
-expand => 1,
-fill => 'both',
);
$flo->Label(-text => "links oben")->pack(-side => 'left');
$flo->Entry(-width => 10)->pack(-side => 'left');

# Frame links mitte:
my $flm = $fl->Frame(
)
->pack(-side => 'top',
-expand => 1,
-fill => 'both',
);
$flm->Label(-text => "links mitte")->pack(-side => 'left');
$flm->Entry(-width => 10)->pack(-side => 'left');

# Frame links unten:
my $flu = $fl->Frame(
)
->pack(-side => 'top',
-expand => 1,
-fill => 'both',
);
$flu->Label(-text => "links unten")->pack(-side => 'left');
$flu->Entry(-width => 10)->pack(-side => 'left');



# Frame mitte oben:
my $fmo = $fm->Frame(
)
->pack(-side => 'top',
-expand => 1,
-fill => 'both',
);
$fmo->Label(-text => "mitte oben")->pack(-side => 'left');
$fmo->Entry(-width => 10)->pack(-side => 'left');

# Frame mitte mitte:
my $fmm = $fm->Frame(
)
->pack(-side => 'top',
-expand => 1,
-fill => 'both',
);
$fmm->Label(-text => "mitte mitte")->pack(-side => 'left');
$fmm->Entry(-width => 10)->pack(-side => 'left');

# Frame mitte unten:
my $fmu = $fm->Frame(
)
->pack(-side => 'top',
-expand => 1,
-fill => 'both',
);
$fmu->Label(-text => "mitte unten")->pack(-side => 'left');
$fmu->Entry(-width => 10)->pack(-side => 'left');


# Frame rechts oben:
my $fro = $fr->Frame(
)
->pack(-side => 'top',
-expand => 1,
-fill => 'both',
);
$fro->Label(-text => "rechts oben")->pack(-side => 'left');
$fro->Entry(-width => 10)->pack(-side => 'left');

# Frame rechts mitte:
my $frm = $fr->Frame(
)
->pack(-side => 'top',
-expand => 1,
-fill => 'both',
);
$frm->Label(-text => "rechts mitte")->pack(-side => 'left');
$frm->Entry(-width => 10)->pack(-side => 'left');

# Frame rechts unten:
my $fru = $fr->Frame(
)
->pack(-side => 'top',
-expand => 1,
-fill => 'both',
);
$fru->Label(-text => "rechts unten")->pack(-side => 'left');
$fru->Entry(-width => 10)->pack(-side => 'left');


$mw->bind('<Escape>', sub { $mw->destroy() } );
} # tk_main
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
Crian
 2004-01-21 12:51
#46748 #46748
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=Patrick,21.01.2004, 10:06]Bei einem Versuch
$right1 = $fup->Frame()->pack(-side => left -padx => 5);
-side mit padx zu kombinieren kommen nur Fehlermeldungen![/quote]
Dazu: Da fehlt ein Komma! Und Anführungszeichen!

pack(-side => 'left', -padx => 5)\n\n

<!--EDIT|Crian|1074682329-->
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
Patrick
 2004-01-21 13:06
#46749 #46749
User since
2004-01-07
56 Artikel
BenutzerIn
[default_avatar]
Hi,
habe es fast geschafft    :-)

hier mein Code
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
#! /usr/bin/perl -w

use strict;
use Tk;
use warnings;

# Variablendeklaration
# Window object
my ($mw);
# framestuff
my ($fup, $fdw, $f1, $f2, $right1, $right2);
# vars
my ($file, $i, $line, $path,  $lbs_val);

# Labels
my ($labl1_lbl, $labl2_lbl, $labl3_lbl, $labl4_lbl);
my ($labl5_lbl, $labl6_lbl, $labl7_lbl, $labl8_lbl);
# textvars
my ($text1, $text2, $text3, $text4, $text5, $text6);
my ($text7, $text8);

# first of all, create a main window
$mw = MainWindow->new();

###########################################################
#-----------------------------Declares-------------------------------------------#
###########################################################

# Gestapelte Frames
$fup = $mw->Frame()->pack();
$fdw = $mw->Frame()->pack();
$f1  = $fup->Frame()->pack(-side => 'left');
$f2  = $fup->Frame()->pack(-side => 'left');
$right1 = $fup->Frame()->pack(-side => 'left');
$right2 = $fup->Frame()->pack(-side => 'left');

$right1->Label(-text => "TEXT1:")->pack(-padx => '1c', -anchor => 'e');
$right1->Label(-text => "TEXT2:")->pack(-padx => '1c', -anchor => 'e');
$right1->Label(-text => "TEXT3:")->pack(-padx => '1c', -anchor => 'e');
$right1->Label(-text => "TEXT4:")->pack(-padx => '1c', -anchor => 'e');

$f1->Label(-text => "TEXT5:")->pack(-padx => '1c', -anchor => 'e');
$f1->Label(-text => "TEXT6:")->pack(-padx => '1c', -anchor => 'e');
$f1->Label(-text => "TEXT7:")->pack(-padx => '1c', -anchor => 'e');
$f1->Label(-text => "TEXT8:")->pack(-padx => '1c', -anchor => 'e');

# here the textfields
$labl1_lbl = $right2->Entry(-textvariable => \$text1 ) ->pack();
$labl2_lbl = $right2->Entry(-textvariable => \$text2 ) ->pack();
$labl3_lbl = $right2->Entry(-textvariable => \$text3) ->pack();
$labl4_lbl = $right2->Entry(-textvariable => \$text4) ->pack();

$labl5_lbl =$f2->Entry(-textvariable => \$text5) ->pack();
$labl6_lbl =$f2->Entry(-textvariable => \$text6) ->pack();
$labl7_lbl =$f2->Entry(-textvariable => \$text7) ->pack();
$labl8_lbl =$f2->Entry(-textvariable => \$text8) ->pack();
.
.
.


Jetzt nur noch der letzte Chirogische Eingriff!

Die Labels sind stellenweise enger aufeinander als die Textfelder, wie korrigiere ich diese Feinheit??

Trotzdem Danke.
Mfg
Paddy

Perl ist göttlich, die Kunst besteht darin Perl anwenden zu können.
eisbeer
 2004-01-21 15:00
#46750 #46750
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
es heisst chirurgisch :)
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
Patrick
 2004-01-21 15:12
#46751 #46751
User since
2004-01-07
56 Artikel
BenutzerIn
[default_avatar]
:blush:
Jetzt ist es gut das niemand sehen kann wie ich erröte!
:D
Mfg
Paddy

Perl ist göttlich, die Kunst besteht darin Perl anwenden zu können.
Crian
 2004-01-21 15:53
#46752 #46752
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Niemals -w und Tk ... lies es hier auf meiner Perlseite nach, warum nicht... nimm use warnings statt dessen.

Was war denn mit meinem Code?\n\n

<!--EDIT|Crian|1074693266-->
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
Patrick
 2004-01-21 16:01
#46753 #46753
User since
2004-01-07
56 Artikel
BenutzerIn
[default_avatar]
Quote
Was war denn mit meinem Code?

Ich war erst mal so froh, das ich es durch eigene Kraft geschafft hatte es zum laufen zu bringen, das ich Deine Lösung noch nicht probiert habe.
Aber sei versichert, Deine Lösung werde ich gleich morgen mal testen, OK!?

Vielen lieben Dank
Mfg
Paddy

Perl ist göttlich, die Kunst besteht darin Perl anwenden zu können.
Crian
 2004-01-21 16:14
#46754 #46754
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Klar, selbst gelöst ist immer besser... aber bei Dir sind noch einige Dinge komisch: 1-4 sind rechts, 5-8 links, einige Frames werden überhaupt nicht verwendet etc. pp.

Aber es war ja auch nur ein Codeausschnitt...
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
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2004-01-21 11:06.