Thread Tk Basics: ein A.. voll variablen (12 answers)
Opened by FtR at 2004-08-07 17:09

FtR
 2004-08-08 00:36
#42407 #42407
User since
2003-08-20
39 Artikel
BenutzerIn
[default_avatar]
The power of TK

Voraussetzung:
ein HoH unbekannter Natur.

Ziel:
den gesammten HoH darstellen uind jedes Fekd editieren können und das zurück in den Hash schreiben

Das Bsp.
Legt mri alle Label und Entryfelder and so das man sogar die HoH Struktur lesen kann
Problem;
1 die momentane Darstellungs form ist ncht zwingend die beste.
2, das zu rückschreiben in den hash weiß ich so garnihc wie ich das machen soll ( hab mir "validatecommand" angeschaut konnt demit aber nix anfangen )
3. das mit den scrollbalken tut nich fuer Frames.

Ideen:
gibt es eine Möglichkeit Variabelm an Entrifelder zu binden ?

Hoffung:
das Ihr alles aber auch alles was man im bezug auf Tk etc verbessern kann aufzeigt

Wunsch:
keine perldoc -f xxx Antworten


THX FtR

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
use Tk;                                                                                                           
use Data::Dumper;

$hash{'KEY'}="VALUE";
$hash{'SUBKEY1'}{'KEY1'}="VALUE";
$hash{'SUBKEY1'}{'KEY2'}="VALUE";
$hash{'SUBKEY1'}{'KEY3'}="VALUE";
$hash{'SUBKEY1'}{'KEY4'}="VALUE";
$hash{'SUBKEY1'}{'SUBSUBKEY1'}{'KEY1'}="VALUE";
$hash{'SUBKEY1'}{'SUBSUBKEY1'}{'KEY2'}="VALUE";
$hash{'SUBKEY1'}{'SUBSUBKEY1'}{'KEY3'}="VALUE";
$hash{'SUBKEY1'}{'SUBSUBKEY1'}{'KEY4'}="VALUE";
$hash{'SUBKEY1'}{'SUBSUBKEY2'}{'KEY4'}="VALUE";
$hash{'SUBKEY1'}{'SUBSUBKEY3'}{'KEY4'}="VALUE";
$hash{'SUBKEY1'}{'SUBSUBKEY4'}{'KEY4'}="VALUE";
$hash{'SUBKEY2'}{'KEY1'}="VALUE";
$hash{'SUBKEY2'}{'KEY2'}="VALUE";
$hash{'SUBKEY2'}{'KEY3'}="VALUE";
$hash{'SUBKEY2'}{'KEY4'}="VALUE";

print Dumper(\%hash);
$top = new MainWindow;
$top->minsize( qw(300 300));
$men = $top->Frame( )->pack(-side=>"top",-fill=>"x");
$men->Button(-text=>"Dump",-command=>\&dumper)->pack();
test(\%hash);
MainLoop();

sub dumper{
print Dumper(\%hash);
}

sub test{
my $fr = $men->Frame(-relief=>"ridge",-borderwidth=>"2")->pack(-side=>"top",-anchor=>"w",-padx=>"10");
out(\%hash,$fr);
}

sub out{
# print "OUT\n";
my $ref = shift;
my $parent = shift;
my $top = $parent->Frame()->pack(-side=>"top",-padx=>"10",-padx=>"4");
my $left = $top->Frame()->pack(-side=>"left",-padx=>"10",-padx=>"4");
my $mid = $top->Frame()->pack(-side=>"left",-padx=>"10",-padx=>"4");
foreach$key ( sort keys %{$ref}){
my $fr = $parent->Frame(-relief=>"ridge",-borderwidth=>"2")->pack(-side=>"top",-anchor=>"w",-padx=>"10");
if (ref $ref->{$key}eq "HASH"){
$fr->Label(-text=>$key)->pack(-side=>"top",-anchor=>"w");
out($ref->{$key},$fr);
}
if(!ref($ref->{$key}) ) {
$left->Label(-text=>$key)->pack(-side=>"top",-anchor=>"w");
$mid->Entry(-text=>$ref->{$key}, -validatecommand=>\&val,-validate=>"focus")->pack();
}
}
}
\n\n

<!--EDIT|FtR|1091911116-->
Code: ()
1
2
print&f(($_=(3x3)."3+33")=~s=3(?![^3]|$)=&f=eg);
sub f{eval(@_?$_:"'$&+'x3");}

View full thread Tk Basics: ein A.. voll variablen