Nov. 3, 2008

Jeśli jeszcze nie wspominałem to teraz wspomnę, że bawiłem się swojego czasu w programowanie GUI z użyciem PHP-GTK.

Mowa o rozszerzeniu PHP pozwalającym na programowanie interfejsów użytkownika w oparciu o GTK. Miałem do czynienia z tego typu rozwiązaniami, np. Perl Tk, i przyznam że PHP-GTK jest dość ciekawe.

Również programowanie idzie szybko i wymaga stosunkowo niewiele kodu.

Aby użyć tego cuda należy mieć skompilowane PHP o z obsługą rozszerzenia GTK. I żeby nie było że Linux i Linux, to zaprezentuje przykłady prosto z Windows :)

Skoro Windows to wersję PHP o której mowa można pobrać z internetu ;)

Może prosty przykład:
function echoValue($spinButton) {
//dane beda widoczne w konsoli
echo $spinButton->get_value() . "\n";
}

$window = new GtkWindow();
$window->set_size_request(150, 150);
$hScale = new GtkHScale(new GtkAdjustment(4, 0, 10, 1, 2));
$hScale->connect('value-changed', 'echoValue'); //przypisanie funkcji
$vScale = new GtkVScale(new GtkAdjustment(4, 0, 10, 1, 2));
$vScale->connect('value-changed', 'echoValue');
$vScale->set_value_pos(GTK::POS_LEFT);
$hBox  = new GtkHBox();
$vBox1 = new GtkVBox();
$vBox2 = new GtkVBox();
$window->add($hBox);
$hBox->pack_start($vBox1);
$hBox->pack_start($vBox2);
$vBox1->pack_start(new GtkLabel('Skala pozioma'), false, false);
$vBox1->pack_start($hScale, false, false);
$vBox2->pack_start(new GtkLabel('Skala pionowa'), false, false);
$vBox2->pack_start($vScale);
$window->connect_object('destroy', array('Gtk', 'main_quit'));
$window->show_all();
Gtk::main();

Uruchamiamy kod w wierszu poleceń:

$> php ./kody/scroller.php  i….

Toolbar zrobić jeszcze łatwiej:

$window = new GtkWindow();

$window->connect_simple('destroy', array('Gtk', 'main_quit'));$toolbar = new GtkToolbar();$quit = GtkToolButton::new_from_stock(Gtk::STOCK_QUIT); //item
$toolbar->add($quit);
$quit->connect_simple('clicked', array('gtk', 'main_quit'));$window->add($toolbar);
$window->show_all();
Gtk::main();

Kilka linijek kodu i mamy tzw. Ruler:

Nieco bardziej rozbudowany przykład to Stany Magazynowe:

Dobrze. Ale po co to?

Mnie np. z ciekawości :) Fajna rzecz, w akcji - działa dość szybko.

Zastosowania?  Częściej pewnie w Linuxie, ale można wymienić: narzędzia do zarządzania bazą danych, np. dla CMS, e-sklepu, etc. Szybko możemy napisać sobie przeglądarkę plików, monitor sieci czy systemu, czytnik rss, narzędzia do analiz, statystyk.

Oczywiście możemy korzystać ze znanych w PHP funkcji. Mamy np. obsługę Socket’ów, więc może ktoś się pokusi o klienta FTP? Funkcji obsługi grafiki PHP ma sporo, Ruler już widzieliśmy powyżej, więc może jakiś mały Photoshop? :) Oczywiście możemy zakodować zaawansowane rzeczy jak Drag and Drop, Progress Bar’y, dodać swoją grafikę i otrzymać ciekawą aplikację.

Często piszą o PHP-GTK w magazynach o PHP.

Ogólnie u mnie to jako ciekawostka w ramach hobby :) A hobby to ma o wiele, wiele szersze i znacznie ciekawsze horyzonty niż PHP. Ale zawsze to dodatkowy arsenał w Workshop’ie.

Jeszcze tylko przydatne linki:

http://gtk.php.net

http://www.kksou.com/php-gtk2/

i życzę przyjemnej zabawy z PHP-GTK :)

Napisał Dominik w kategoriach: O programowaniu

Musisz być zalogowany aby komentować