Schrift
[thread]4943[/thread]

Menu->configure()



<< >> 9 Einträge, 1 Seite
Froschpopo
 2005-04-15 10:46
#43571 #43571
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Hi,

ich hab ein Menu:
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
my $menu = $config{MainWindow}->Menu
(-menuitems => [
[Cascade => "~Datei", -tearoff => 0, -menuitems =>
[

[Button => "Anmelden als Froschpopo",

-command => sub { } ],

[Cascade => "Mein Status",

-tearoff => 0,

-menuitems =>

[

[Button => "~Online",

-command => sub { } ],

[Button => "~Beschäftigt",

-command => sub { } ],

[Button => "~Bin gleich zurück",

-command => sub { } ],

[Button => "~Abwesend",

-command => sub { } ],

[Button => "~Mittagspause",

-command => sub { } ],

[Button => "~Als Offline anzeigen",

-command => sub { exit } ]

]

],

[Button => "~Wechseln zu",

-command => sub { } ],

"-",

[Button => "~Beenden",

-command => sub { exit } ]
]
],
[Cascade => "~Kontakte",
-tearoff => 0,
-menuitems =>
[

[Button => "Kontakt hinzufügen",

-command => sub { AddUser() }],

[Button => "Kontakt suchen",

-command => sub { SearchUser() }],

[Button => "Gruppen verwalten",

-command => sub { EditGroups() }]
]
],
[Cascade => "~Extras",
-tearoff => 0,
-menuitems =>
[

[Button => "Profil bearbeiten",

-command => sub {

GotoUrl("http://flirtwelt.net/index.html?ID=options") }],

[Button => "Fotoalbum bearbeiten",

-command => sub {

GotoUrl("http://flirtwelt.net/index.html?ID=files") }],

"-",

[Button => "Optionen",

-command => sub { &Options }]
]
],
[Cascade => "~?",
-tearoff => 0,
-menuitems =>
[

[Button => "Online-Hilfe",

-command => sub { GotoUrl("http://flirtwelt.net/index.html?ID=files") }],

[Button => "Info",

-command => sub { SearchUser() }],

[Button => "Hilfethemen",

-command => sub { EditGroups() }]
]
]
]
);

gibts da auch ne Möglichkeit wie bei vielen anderen Widgets mit configure() einzelne Elemente zu updaten?
Weil sonst müsste ich das gesamte Menü jedesmal neu erstellen und die Arbeit würde ich mir gerne ersparen.
ptk
 2005-04-15 12:46
#43572 #43572
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Guck mal in die Dokumentation, da muesste es etwas wie itemconfigure oder entryconfigure geben.
Froschpopo
 2005-04-15 13:45
#43573 #43573
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
also entryconfigure hab ich gefunden, allerdings kann ich damit nur die Menüleiste selbst verändern (also Datei, Kontakte etc.). Damit hab ich leider keinen Zugriff auf die einzelnen Menüelemente wie "beenden" usw.
Zu itemconfigure hab ich nichts gefunden, scheint es aber zu geben da es keinen Fehler gibt.
Wie meinst du denn ist der Syntax von itemconfigure aufgebaut ?
ptk
 2005-04-15 15:01
#43574 #43574
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Doch, mit entryconfigure und dem Index sollte es gehen.
Froschpopo
 2005-04-15 19:05
#43575 #43575
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
also mal angenommen ich will bei "profil bearbeiten" state auf "desabled" setzen, wie soll das denn bitte mit entryconfigure gehen? Ich kann damit höchstens das "Extras"-Feld auf disabled setzen, aber ich komme nicht rein in das Pulldown-Menü !
Froschpopo
 2005-04-15 20:07
#43576 #43576
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
was ich brauche is sowas wie: $menu->entryconfigure("Datei, beenden", -option => value);
Aber das funzelt nicht... ich will ja nur den Beenden-Item auf "disabled" setzen und nicht den Datei-Button in der Menüleiste
ptk
 2005-04-15 21:58
#43577 #43577
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
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
use Tk;
$mw = tkinit;

$mw->optionAdd("*tearOff", 0);
$m = $mw->Menu
(-menuitems =>
[
[Cascade => "~File", -menuitems =>
[
[Button => "~Open"],
[Button => "~Reload"],
[Button => "~Quit"],
[Cascade => "~Cascade", -menuitems =>
[
[Button => "~Foobar"],
]
]
]
]
]
);
$mw->configure(-menu => $m);

# Disable Foobar:
$m->entrycget(0, -menu)->entrycget(3, -menu)->entryconfigure(0, -state => "disabled");

MainLoop;


Mit den Tear-Offs muss man vorsichtig sein: wenn sie aktiviert sind, muss man den Index immer um eins erhoehen.
Froschpopo
 2005-04-16 00:44
#43578 #43578
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
funzt prima, aber wozu brauch ich tkinit ? sollte eigentlich auch ohne klappen... danke
ptk
 2005-04-18 12:08
#43579 #43579
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
tkinit ist die Kurzversion von MainWindow->new.
<< >> 9 Einträge, 1 Seite



View all threads created 2005-04-15 10:46.