Thread menubar widgets ausblenden und bind
(11 answers)
Opened by Krikus at 2007-11-10 00:46
Hi,
ich habe folgendes Problem. Sobald ich einen Menüpunkt aufrufe, z.B Gruppe löschen und dann anschließend Benutzer löschen dann bleiden die Eingabefelder von vorher stehen. Wie kann ich diese ausblenden bzw. löschen. Desweitern würde ich gerne über die Tasten die 4 Menüpuntte ansteuern. Allerdings weiß ich nicht was ich in die sub eintragen muss. (siehe unten) Hier der Code damit es verständlicher wird. Code (perl): (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 #!/usr/bin/perl -w use strict; use warnings; use diagnostics; use Tk; use Tk::BrowseEntry; my $main = new MainWindow; $main->title('Unser AD/TK Projekt'); #$main->configure (-width=>"640",-height=>"480"); #Geht bei pack nicht my $toplevel = $main->toplevel; #Erzeugung Menü # Die Menueleiste wird in den Kopf des Fensters gehaengt my $menubar = $toplevel->Menu(-type => 'menubar'); $toplevel->configure(-menu => $menubar); # Nun bauen wir ein Datei-Menue my $mdatei = $menubar->cascade(-label => 'Datei', -underline => 0, -tearoff => 0); $mdatei->command(-label => 'Öffnen', -command => sub{datei_oeffnen()}); $mdatei->command(-label => 'Beenden', -command => sub{ exit }); # Nun bauen wir ein Benutzer-Menue my $mbenutzer = $menubar->cascade(-label => 'Benutzer',-underline => 0,-tearoff => 0); $mbenutzer->command(-label => 'Benutzer löschen', -command => sub{benutzer_loeschen()}); $mbenutzer->command(-label => 'Benutzer verschieben', -command => sub{ exit}); # Nun bauen wir ein Gruppen-Menue my $mgruppe = $menubar->cascade(-label => 'Gruppen',-underline => 0,-tearoff => 0); $mgruppe->command(-label => 'Gruppe erzeugen', -command => sub{exit}); $mgruppe->command(-label => 'Benutzer in Gruppe anzeigen lassen', -command => sub{ exit }); $mgruppe->command(-label => 'Benutzer in Gruppe hinzufügen', -command => sub{ exit }); $mgruppe->command(-label => 'Gruppe löschen', -command => sub{ gruppe_loeschen() }); # Nun bauen wir ein Hilfe-Menue my $mhilfe = $menubar->cascade(-label => 'Hilfe',-underline => 0,-tearoff => 0); $mhilfe->command(-label => 'Kontakt', -command => sub{hilfe_konakt()}); $mhilfe->command(-label => 'Info', -command => sub{ hilfe_info() }); my $framelist = $main->Frame; $framelist->pack(-side,'top'); my $label = $main->Label(-text => 'Unser AD/TK Projekt', -width=>"50") ->pack(-in=>$framelist, -side => 'top'); # Menü aufrufbar machen mit Alt und dem unterstrichenen Buchstaben: $main->bind('<Alt-d>', sub {}); $main->bind('<Alt-b>', sub {}); $main->bind('<Alt-g>', sub {}); $main->bind('<Alt-h>', sub {}); MainLoop; sub datei_oeffnen { my $dir = $main->getOpenFile(); #print $dir; #Ausgabe in der Konsole } sub gruppe_loeschen { my $dropdown1 = $main->BrowseEntry(-width=>"50")->pack(-side,'top'); #Inhalt Dropdown1 $dropdown1->insert(0,'eins','zwei','drei','vier','fünf'); my $button1 = $main->Button(-text => 'Gruppe löschen', -command => \&gruppenloeschen )->pack(-side,'bottom'); #$main->messageBox (-message=>"Programm wird beendet"); #exit; } sub benutzer_loeschen { my $dropdown2 = $main->BrowseEntry(-width=>"50")->pack( -side,'top'); #Inhalt Dropdown2 $dropdown2->insert(0,'eins','zwei','drei','vier','fünf'); my $button2 = $main->Button(-text => 'Benutzer löschen',-command => \&benutzerloeschen )->pack(-side,'bottom'); } sub hilfe_konakt { $main->messageBox (-title => 'Kontakt', -message=>'Support erhalten sie unter xxx@xxx.de'); } sub hilfe_info { $main->messageBox (-title => 'Info', -message=>'Programm Version v0.1'); } |