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://www.kksou.com/php-gtk2/
i życzę przyjemnej zabawy z PHP-GTK ![]()




Musisz być zalogowany aby komentować