[ varelg @ 13.02.2008. 18:31 ] @
Svidja mi se kako se relativno lako grade GUI uz pomoch Glade alata u Linuxu ali mi se ne svidja shto za programski jezik za pisanje procedura imam izbor samo izmedju C, C++ i Ada 95.
Recimo otvorim novi projekat i u Options -> General izmedju ostalog mogu da biram i programski jezik, pruzha mi se izbor samo ta tri jezika. Kako da u tim opcijama dodam Perl? Ili bilo koji drugi od skriptnih jezika?
Ako je dodavanje jezika moguche, mozhe li se "ografichiti" bash skripta, odnosno aktivirati nju pritiskom na dugme koje je sastavni deo GUI izradjenog u Glade- u?
[ kasler @ 10.03.2008. 13:11 ] @
Ako se do sad nisi snasao, pokazacu ti najprostiji primer, pa se ti snadji za dalje. :)

Otvoris Glade, napravis prozor i u njemu postavi Label i Button. Label rasiri malo da ima mesta za tekst, ali nemoj nista da upisujes u njega. Klikni na Button1, otvori properties za njega (View -> Show Property Editor) i idi na tab signals. U polje Signal upises (ili izaberes sa liste ponudjenog) clicked. U Handler polju treba da ti pise on_button1_clicked. Sad kliknes Add na dnu prozora. Takodje bi bilo lepo da za window1 dodas signal destroy, ciji je Handler on_window1_destroy. Ovaj projekat sacuvaj pod nazivom proba.glade.
Sledeci korak je pisanje perl file-a, koji ce u nasem slucaju izgledati ovako:
Code:

#!/usr/bin/perl
use warnings;
use strict;
use Gtk2 '-init';
use Gtk2::GladeXML;

my $glade = Gtk2::GladeXML->new("proba.glade");
$glade->signal_autoconnect_from_package('main');
my $label = $glade->get_widget('label1');

Gtk2->main;

my $brojac = 1;

sub on_button1_clicked
{
   $label->set_markup("Kliknuo si Button1 $brojac puta."); # postavlja tekst u label1
   $brojac += 1;
}

sub on_window1_destroy
{
    exit(1); # gasenje pokrenutog perl skripta nakon zatvaranja prozora
}


Perlov fajl sacuvaj kao proba.pl i pokreni ga iz konzole. Vrlo je moguce da ce ti perl prijaviti gresku slicnu ovoj:
Code:

Can't locate Gtk2.pm in @INC (@INC contains: /usr/lib/perl5/5.8.8/i486-linux-thread-multi /usr/lib/perl5/5.8.8 /usr/lib/perl5/site_perl/5.8.8/i486-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl .)

U tom slucaju skini i instaliraj sa CPAN-a Gtk2::GladeXML.

Nadam se da sam pomogao barem malo. :D

P.S. Nisam probao da li radi ovo cudo (99.9% da radi), posto sam samo za ovu priliku kompajlirao Glade i mrzelo me da jurim po CPAN-u za modulima. :D