Schrift
[thread]5157[/thread]

[Perl-Tk] Gruppenfeld



<< >> 7 Einträge, 1 Seite
zipster
 2006-01-31 16:08
#45213 #45213
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Hi,

ich würde in meiner GUI gern ein Gruppenfeld benutzten, habe aber keine Ahnung ob das möglich ist. Google und Forumsuche hat nichts gebracht.

Falls jemand nicht weiß was ich meine, der HTML Befehle dafür heißt <fieldset>


Bis dann
Seri
Matze
 2006-01-31 16:43
#45214 #45214
User since
2005-08-29
222 Artikel
BenutzerIn
[Homepage] [default_avatar]
Natürlich ist das möglich!
Ich weiß zumindest wie es mit Tk funktioniert.

Dazu kannst du dir am besten mal PERLPFAD/site/lib/TK/demos/widtrib/labframe.pl ansehen.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
# LabFrame, frame with embedded label.

use Tk;
use Tk::LabFrame;
use Tk::LabEntry;

my $test = 'Test this';

my $top = MainWindow->new;
my $f = $top->LabFrame(-label => "This is a label", -labelside => "acrosstop");
$f->LabEntry(-label => "Testing", -textvariable => \$test)->pack;
$f->pack;
MainLoop;


Man nennt sowas dann: Zusammengesetzte Widgets.
Ich muss allerdings nochmal nachsehen wie das mit anderen Widgets funktioniert.
Aber soviel ich weiß geht sowas mit allen.

MfG. Matze
Mit freundlichen Grüßen: Matze
zipster
 2006-01-31 17:54
#45215 #45215
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Super... war genau das was ich gesucht habe.
Vielen Dank Matze.

/EDIT
Aber Labframe hat ein Bug. Sobald man grid statt pack benutzt funktioniert "height" nicht mehr... was fürn mist\n\n

<!--EDIT|zipster|1138724936-->
Matze
 2006-01-31 21:09
#45216 #45216
User since
2005-08-29
222 Artikel
BenutzerIn
[Homepage] [default_avatar]
Du musst ja auch nicht unbedingt -height benutzen, bei grid kannst du doch einfach -rowspan höher setzen und das Widget dann mit -sticky => "nsew" strecken.

Wenn du gleichmäßig große 'gird-Felder' haben möchtest, dann benutze doch folgendes direkt vor deinem MainLoop:

Code (perl): (dl )
1
2
3
4
5
6
7
8
my ($columns, $rows) = $main_window -> gridSize();

for (my$i = 0; $i < $columns; $i++) {
  $main_window -> gridColumnconfigure($i, -weight => 1);
}
for (my$i = 0; $i < $rows; $i++) {
  $main_window -> gridRowconfigure($i, -weight => 1);
}


MfG. Matze
Mit freundlichen Grüßen: Matze
zipster
 2006-02-01 12:26
#45217 #45217
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Fürs ganze Main Window brauche ich es aber nicht.
Ich bräuchte es nur für eins oder zwei Notebooks.

Hab versucht ihn bei mir einzubauen. Hat aber leider nicht so funktioniert.
Kannst du mir vieleicht weiterhelfen?

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
...
my $w = $hauptfenster->NoteBook()->grid();
...
my $page8 = $w->add("page8", -label=>'Zusatzleistung');
...

my $gruppenfeld1 = $page8->LabFrame(-label => "Zimmer", -labelside => "acrosstop");
...
my $gruppenfeld6 = $page8->LabFrame(-label => "Sontiges", -labelside => "acrosstop");

$gruppenfeld1->Checkbutton(-text => "Großes Zimmer (<16,5m²)",
-variable => \my $erste_telefonnummer,)->grid( -sticky => "w");
$gruppenfeld1->Checkbutton(-text => "Kühlschrank anschließen",
-variable => \my $erste_telefonnummer,)->grid( -sticky => "w");
$gruppenfeld1->Checkbutton(-text => "Kühlschrank leihen",
-variable => \my $erste_telefonnummer,)->grid( -sticky => "w");
$gruppenfeld1->Checkbutton(-text => "Fernseher an die Antennenanlage mit SAT anschließen",
-variable => \my $erste_telefonnummer,)->grid( -sticky => "w");
$gruppenfeld1->Checkbutton(-text => "Fernseher Leihgerät",
-variable => \my $erste_telefonnummer,)->grid( -sticky => "w");
$gruppenfeld1->Checkbutton(-text => "Telefon amtsberechtigt",
-variable => \my $erste_telefonnummer,)->grid( -sticky => "w");
$gruppenfeld1->Checkbutton(-text => "Telefongebühren je Einheit",
-variable => \my $erste_telefonnummer,)->grid( -sticky => "w");
....

my ($columns, $rows) = $page8 -> gridSize();

for (my$i = 0; $i < $columns; $i++) {
$page8 -> gridColumnconfigure($i, -weight => 1);
}
for (my$i = 0; $i < $rows; $i++) {
$page8 -> gridRowconfigure($i, -weight => 1);
}
$gruppenfeld1->grid(
$gruppenfeld2,
$gruppenfeld3);
$gruppenfeld4->grid(
$gruppenfeld5,
$gruppenfeld6);
....
Matze
 2006-02-01 16:27
#45218 #45218
User since
2005-08-29
222 Artikel
BenutzerIn
[Homepage] [default_avatar]
Naja, ich glaub du musst das ganze nicht für $page8 sondern für die jeweiligen $gruppenfeld er machen.

Oder was funktioniert nicht ?

MfG. Matze
Mit freundlichen Grüßen: Matze
zipster
 2006-02-01 17:03
#45219 #45219
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
SUPER! Das wars ....

Vielen Dank Matze...
<< >> 7 Einträge, 1 Seite



View all threads created 2006-01-31 16:08.