gtk-perl Zugriff auf Menü
am 04.01.2007 14:07:39 von guenter.moritzHallo an Alle,
ich habe mit Glade eine Oberfläche entworfen, in der unter Anderem ein
Menü vorhanden ist. Auf Teile dieses Menüs möchte ich nun zugreifen. Je
nachdem wie eine Abfrage ausfällt sollen Teile des Menüs deaktiviert werden.
Mein Programm sieht in etwa so aus:
#!/usr/bin/perl
##################################################
# Bilderverwaltung -- Gtk2 GUI
##################################################
use warnings;
use strict;
use Gtk2 -init;
use Gtk2::GladeXML;
use Glib;
# Load GUI XML description
my $g = Gtk2::GladeXML->new(
'bilderverwaltung.glade');
###
## globale Variable
###
my $w1 = $g->get_widget('wm1');
my $inPfad = $g->get_widget('inPfad');
my $statusbar = $g->get_widget('statusbar');
my $neu1 = $g->get_widget('neu1');
my $oeffnen1 = $g->get_widget('öffnen1');
### Menü-Teile
my $Bearbeiten = $g->get_widget('Bearbeiten');
my $Ansicht = $g->get_widget('Ansicht');
my $Hilfe = $g->get_widget('Hilfe');
my $Bilder = $g->get_widget('Bilder');
my $inPfad_Text;
print ("$Bearbeiten\n");
###
## Normale Variable
###
my $mysql_installed;
###
## Verbinden der Signale
###
$g->signal_autoconnect_all (
on_beenden_activate => 'beenden_activate',
on_einlesen1_activate => 'einlesen1_activate',
on_btCancel_clicked => 'btCanceld_clicked',
on_btOk_clicked => 'btOk_clicked'
);
###
## Prüfung, ob MySQL installiert ist
###
$mysql_installed = system("dpkg -l | grep mysql > erg.xxx");
if ($mysql_installed eq 256)
{
## Ausgabe in Statuszeile
print ("MySQL ist nicht installiert\n");
## Alle Menüeinträge deaktivieren, bis auf Datei/Beenden
menue_deaktivieren();
}
else
{
## Ausgabe in Statuszeile
print ("MySQL ist installiert\n");
}
# Enter main loop
Gtk2->main();
############################################################ #####
###
## Eigene Funktionen
###
[...]
sub menue_deaktivieren {
$Bearbeiten->_deselect();
}
############################################################ ####
Wenn ich nun das vollständige Programm starte bricht es mit den
folgenden Fehlermeldungen ab:
perl bilderverwaltung.pl
Use of uninitialized value in concatenation (.) or string at
bilderverwaltung.pl line 33.
MySQL ist nicht installiert
Can't call method "_deselect" on an undefined value at
bilderverwaltung.pl line 120.
############################################################ ###
Meine Frage an Euch, wie greife ich auf die entsprechenden Menü-Teile
(Sub-Menue, Item) zu und mit welcher Methode deaktiviere ich sie?
Welches Buch (in deutsch) könnt Ihr mir für Perl-Gtk empfehlen?
Ich habe schon eine Weile gegoogeld aber entweder habe ich die falschen
Stichworte benutzt oder ich habe den Wald vor lauter Bäumen nicht gesehen.
Danke für Eure Hilfe und Tipps.
MfG
Günter