Newsgroup: it.comp.lang.perl
Titolo: PerlGTK e estrazione dei dati

Stavo creandomi una mia interfaccia ad un db in PerlGTK, ma non mi
riesce di eseguire una estrazione dei dati da una combo box. Per
farmi capire meglio, questo e` quello che faccio:
1) creo una combo box:
#v+
$CList = new Gtk::Combo;                                                        
$CList->set_case_sensitive(0);                                                  
$CList->set_use_arrows(1);                                                      
$CList->set_popdown_strings('Albi', 'Autori', 'Collane', 'Personaggi', 'Serie', 'Storie');                                                                      
$CList->show;
#v-
2) attraverso un pulsante ($PbSelect) richiamo una procedura:
#v+
sub SelectWindow {
  my $window;
  $window = $CList->entry->get_text();
  OpenWindow($window); # OpenWindow fara` parte di un package in cui
                       # saranno definite tutte le finestre utilizzate
		       # dal programma, in modo che il tutto sia il
		       # piu` indipendente possibile dalla interfaccia
}
#v-
Ora, il mio problema e` proprio quello di tirare fuori il dato dalla
combo box ( `$window = $CList->entry->get_text();` per intenderci), in
quanto mi riporta sempre un valore nullo. Qual e` quindi il metodo
giusto per sapere il valore attuale di una combo box (o di una entry)?
Henryx
-- 
GnuPG fingerprint = 42F9 521B 63C7 89FE 354C  89FA 4E49 3E2D 2EB6 B014

   $window = $CList->entry->get_text();
Il metodo è quello giusto (almeno secondo il Gtk/Perl tutorial che ho
io). L'unica cosa che mi viene in mente è se $CList sia definito a
livello globale, cioé se sia accessibile anche da dentro la sub 
SelectWindow, altrimenti puoi renderlo disponibile passandolo come
parametro alla callback del button $PbSelect.
Ciao,
-- 
+--------+ ASCII ribbon campaign ( )
|  kral  |  - against HTML email  X
+--------+              & vCards / \

 parametro alla callback del button $PbSelect.
Si, e` globale (la dichiarazione di $CList, nelle prove che sto
facendo, e` effettuata nel blocco principale del programma)


 $CList->entry->get_text();


 
Ho trovato un esempio (non ricordo dove) in cui faceva
$combo->get_text() direttamente, quindi non $combo->entry->get_text().
Prova allora con
	$CList->get_text();
Poi facci sapere,



Scusate, mi è partito un colpo :)


 	$CList->get_text();
Can't locate object method "get_text" via package "Gtk::Combo" at
./
fumettiint.pl
 line 19
Henryx :/



Quando? Sat, 12 Jul 2003 14:43:38 +0000 (UTC)
In quale articolo? <slrnbh07kq.6rn.h...@localhost.localdomain>
Ok, ora penso di non capirci piu` niente. Questo e` il codice che
utilizzo in questo momento:
#v+
sub SelectWindow {
  my $window;
  $window = $CList->entry->get_text();
  #openwindow($window);
  print $window;
}
#v-
Perche` dico di non capirci piu` niente? Perche` funziona! All'uscita
dal programma, mi viene stampata correttamente l'entry selezionata nella
combo box, come se fosse normale.
Mah...
Henryx
P.S. funziona anche con un campo di tipo entry...
P.P.S. come faccio ad assegnare un evento al punsante di chiusura della
finestra?


 della finestra?
Dovrebbe essere
	$win->signal_connect('destroy', \&chiusura); 
oppure
	$win->signal_connect('delete_event', \&chiusura); 
ma non ricordo quale dei due funzioni esattamente.
Dovrebbe essere il primo cmq.
Ciao,


 Dovrebbe essere il primo cmq.
È il secondo.
Al segnale di "destroy", di solito, si associa l'uscita dal ciclo
principale delle GTK (gtk->main_quit).
Ciao,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)           [ 
http://digilander.libero.it/ebassi/
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

 principale delle GTK (gtk->main_quit).
Grazie, ero un pò confuso :).
