View Full Version : [PERL] GUI builder
monster77
27-02-2009, 15:30
Ciao a tutti,
non sono un programmatore ma da un po' di tempo utilizzo PERL per svolgere alcune operazioni su file o per accedere a database da cui estraggo dati in file di testo.
Ora volevo cominciare a creare delle semplici interfacce ma ho delle grosse difficoltà sia per il fatto che non trovo manuali semplici o magari in italiano sia perchè ho cercato di utilizzare dei software tipo wxDesigner o wxGlider ma non capisco un tubo.
Chiedo a voi aiuto per manuali passo passo e per software facili da usare o per lo meno un po' intuitivi.
Uso windows come sistema operativo.
Grazie mille a tutti voi per l'aiuto che mi darete.
ciao
LordEver
27-02-2009, 16:20
Se le interfacce utente non sono complesse, ma soprattutto se vuoi fare pratica, ti consiglio di iniziare scrivendole a mano in TK..
Comunque come gui designer prova questo: GUI Builder (http://downloads.sourceforge.net/spectcl/guibuilder-win32-ix86-20070129.exe) (qui (http://spectcl.sourceforge.net/ko3-guib-docs/komodo-doc-guibuilder.html) una guida). Si tratta di un componente di Komodo IDE di Active State (http://www.activestate.com) rilasciato gratuitamente in questa versione non nuovissima (2006-2007) ma comunque di semplice utilizzo.
Ma di semplice utilizzo è anche wxGlade (http://wxglade.sourceforge.net/).. trovi difficoltà ad integrare il codice? Nella pagina di WxGlade le guide non sono fatte male, c'è anche un tutoriale in flash che riguarda proprio perl ed integra anche con del codice.
Riguardo a tutorial in italiano non ho da consigliarti.
Ciao
monster77
27-02-2009, 17:45
Ciao, grazie mille per l'aiuto, mi sembra bello ed abbastanza facile da utilizzare guibuilder, ma ho un'altra richiesta.
Ho creato un form con all'interno un oggetto text e vorrei inserire degli script che ho già costruito in passato in modo da far visualizzare all'interno del componente text quello che vedo quando lo eseguo dalla finestra dos.
Scusa per le domande stupide ma devo iniziare con le cose che mi serve fare per capire il codice e la struttura....
Grazie ancora
LordEver
27-02-2009, 18:32
Sono anni che non uso perl.. comunque per editare il codice inizio consigliandoti komodo edit (http://www.activestate.com/komodo_edit/) (gratuito), poi devi iniziare a lavorare con il codice generato da GUI Builder (se non erro un .pl e un .pm che contiene la parte dell'interfaccia grafica).
Ti lascio qualche link da guardare con tutorial introduttivi su perl/tk (con google ne puoi trovare quanti ne vuoi):
http://theory.uwinnipeg.ca/perltk/widgets/
http://www.perl.com/pub/a/1999/10/perltk/ Datato, ma può esserti utile per capire "dove graficamente" il tuo codice va a finire.
monster77
02-03-2009, 11:42
Ciao, ho guardato i link che mi hai consigliato e sono molto utili e ti dirò, comincio a capire qualche cosa e sto provando dei semplici script ma mi manca ancora qualche nozione di base; ad esempio nello script seguente cerco permendo il pulsante "via" di far apparire in una lable i numeri che si incrementano da 0 a 10 ma non visualizza nulla.
mi sai dire dove sbaglio?
grazie ancora
use Tk;
use strict;
use warnings;
my $mw = MainWindow->new;
$mw->title('text');
my $contatore=0;
sub message {
until ($contatore<10)
{
my $message=$contatore ++;
my $label = $mw->Label(-textvariable => \$message);
$label->pack;
}
}
my $exit = $mw->Button(-text => 'Exit',
-command => [$mw => 'destroy']);
my $via = $mw->Button(-text => 'via',
-command => \&message);
$exit->pack;
$via->pack;
MainLoop;
monster77
02-03-2009, 16:28
il problema che avevo l'ho risolto ma ora se ne è presentato uno nuovo nel senso che qunado eseguo la subrutine non scrive nulla nella listbox finche non ha finito di eseguirla.
use Tk;
use warnings;
$mw = MainWindow->new;
$mw->title('text');
$lb = $mw->Scrolled('Text',
-width => 40,
-height => 16,
-scrollbars => 'osow');
$via = $mw->Button(-text => 'via',
-command => \&message);
$contatore=0;
sub message {
while ($contatore<5)
{
$message=$contatore ++;
$lb->insert('end', $message."\n");
$lb->pack;
print $contatore;
}
sleep 5;
$message="prova";
$lb->insert('end', $message);
}
$exit = $mw->Button(-text => 'Exit',
-command => [$mw => 'destroy']);
$exit->pack;
$via->pack;
$lb->pack;
MainLoop;
monster77
04-03-2009, 16:47
Ciao a tutti sono ancora io con un nuovo quesito.
Ora la mia applicazione più o meno va ma quando entra in un ciclo di una subroutine richiamata dalla pressione di un pulsante il form non risponde più; l'apllicazione continua a girare ma gli altri bottoni non rispondono. Dovrei trovare un comando tipo il DoEvents di VB.
Qualcuno sa come posso fare magari con qualche semplice esempio?
Grazie a tutti.
ciao
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.