Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
PHP
Co to je PHP-GTK?
php
11. května 2001, 00.00 | Termín PHP jste již zřejmě slyšeli, GTK možná ne. My vám ukážeme, co to vlastně je PHP-GTK. Aneb jak vytvářet grafické rozhraní a přitom používat všechny výhody PHP.
Nuže, co znamená ta podivná zkratka PHP-GTK? Většina z vás asi bude znát PHP, menší část už rozluští GTK. Tedy - PHP je hlavně serverový skriptovací jazyk. GTK+ je sada knihoven (původně napsaných pro grafický editor GIMP), které slouží k vytváření grafického uživatelského rozhraní. A určitě jste již uhodli, že PHP-GTK spojuje oba tyto zdánlivě rozdílné projekty.
Můžete tedy vytvářet grafické rozhraní a používat všechny výhody PHP, např. spolupráci s databázemi. Jak PHP, tak GTK+ jsou portovány na různé operační systémy (Linux, Windows i další), takže máte zaručeno snadné použití téměř všude.
Základní pojmy a instalaceJako základní pojem bych zdůraznil widget - je to jakýkoli prvek uživatelského rozhraní vytvořený GTK+. (Ve slovníku jsem našel widget přeložen jako "taková ta věcička", takže raději zůstanu u anglického názvu.) Všechny widgety se vytváří stejně - např. nové okno vytvoříme příkazem $okno = &new GtkWindow;
Nechci vyvolávat zuřivou debatu, ale instalaci popíši na Windows, jelikož je jednodušší. Z webu gtk.php.net si stáhněte zkompilovanou poslední verzi pro Windows (v současné době je to 0.0.3, což ukazuje, že PHP-GTK se ještě mohutně vyvíjí). Vytvořte si např. adresář C:\phpgtk a do něj zkopírujte php.exe, php.ini a všechny dll knihovny. Tím je instalace dokončena. V zipu máte přibaleno i několik ukázkových skriptů, takže si je můžete prostudovat. Skripty se spouští takto: php.exe skript.php
První programProč otálet? Zkusíme si hned napsat první jednoduchý program.
Jak už jsme si řekli, výsledné programy jsou použitelné pod Windows i Linuxem. A toho dosáhneme jednoduchou podmínkou na samotném začátku skriptu.
|
Základem každého grafického prostředí je okno (což je vidět již z názvu - Windows či X-window), tudíž si vytvoříme nové okno našeho programu. Nastavíme si titulek okna, jeho velikost v pixelech a jeho pozici. S okny (a všemi widgety) toho lze provádět samozřejmě mnohem více, ale nebudeme program zbytečně prodlužovat.
Pro všechny widgety je však důležitá funkce $widget->connect_object('událost','funkce');. Tímto určíme, která funkce se provede při určité události. Události jsou předdefinované - např. pro tlačítko existují události pressed, released, clicked, enter, leave. U našeho okna sledujeme událost destroy, která nastane např. kliknutím na křížek v pravém horním rohu či stiskem Alt+F4; na tuto událost napojíme funkci Gtk::main_quit() (v tomto případě je napojení sice trochu komplikovanější, ale tím se nemusíte trápit).
|
Dalším důležitým prvkem v GTK+ je GtkBox. Ten sám o sobě nic zvláštního neprovádí, pouze může obsahovat jiné widgety. Boxy jsou vertikální GtkVBox a horizontální GtkHBox. Widgety umístěné do horizontálního boxu se budou zobrazovat pěkně vedle sebe, kdežto ve vertikálním boxu se zobrazí pod sebou. Do boxu můžete samozřejmě umístit i další box, takže si snadno vytvoříte design okna přesně podle svých potřeb. Pro umístění jednoho widgetu do jiného (např. tlačítka do boxu) slouží funkce $box->add($widget);
Teď si vytvoříme vertikální box, do kterého umístíme nápis a tlačítko pěkně pod sebe. Při vytváření textu (GtkLabel) hned jako parametr zadáme text, který se má zobrazovat.
U nového tlačítka opět zadáme jako parametr text, který se ukáže na tlačítku. Události spojené s tlačítkem jsem nezmiňoval náhodou - nyní využijeme událost clicked (kliknutí na tlačítko), kterou propojíme se stejnou funkcí jako destroy událost okna - tedy ukončení celého programu.
|
Už nám zbývají jen poslední dva úkony. Vytvořené widgety jsou sice hezké, ale ještě se nezobrazí. K tomu poslouží funkce $widget->show(); (zobrazí daný widget), nebo lépe $widget->show_all(); (zobrazí daný widget a také všechny widget v něm obsažené - tedy v našem případě okno a všechno, co toto okno obsahuje).
A nakonec spustíme hlavní smyčku Gtk::main(); celého programu, čímž zaručíme, že se program hned neukončí a bude čekat až na ukončovací funkci Gtk::main_quit();
|
Ještě dvě důležitá upozornění. První - jelikož jde o PHP skript, je třeba začít <? a skončit ?>. Druhé - v textech, které se mají zobrazit, nepoužívejte diakritiku - GTK+ používá Unicode UTF-8. Celý skript, který jsme spolu vytvořili si můžete stáhnout zde.
Výsledkem celého snažení by mělo být podobné okno:
Tento článek měl posloužit jako první letmé seznámení s PHP-GTK a doufám, že alespoň trochu pomůže v rozšíření tohoto výborného nástroje. Pokud by byl z vaší strany zájem, určitě se přemohu a napíši seriál, ve kterém bychom se mohli všem úskalím PHP-GTK věnovat podrobně.
Diskuse k článku
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007