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
PHP-GTK 4. - Hrátky s okny
php
25. června 2001, 00.00 | Dnes se seznámíme s určitě nejdůležitějším prvkem grafických aplikací - oknem.
Dnes se seznámíme s určitě nejdůležitějším prvkem grafických aplikací - oknem.
Kostra programuUrčitě už se těšíte, až začneme vytvářet nějaké aplikace. Takže se do toho bez zbytečných okolků pustíme.
Nejprve je třeba zdůraznit, že aplikace v PHP-GTK jsou samozřejmě PHP skripty, a tudíž musí být patřičně ohraničeny. Na začátek programu tedy patří <? a na konec ?>.
Dále nesmíte zapomenout na nahrání potřebné knihovny. A jelikož je PHP-GTK provozovatelné na Windows i Linuxu, musíme podle operačního systému zvolit správnou knihovnu.
|
Pokud se vám tato podmínka zdá příliš dlouhá, můžete zkusit toto: dl('php_gtk.' . (strstr(PHP_OS, 'WIN') ? 'dll' : 'so'));
Programy v GTK+ fungují tak, že se nejprve nadefinují všechny funkce a určí všechny prvky GUI, a poté se odstartuje hlavní smyčka - teprve teď aplikace "běží". Hlavní smyčka se spouští pomocí funkce Gtk::main();. Samozřejmě má tato funkce i svůj opak, kterým běžící aplikaci ukončíte - Gtk::main_quit(); Ve třídě Gtk je nadefinováno mnohem více užitečných funkcí GTK+ (kupříkladu časovače, které vám předvedu v některém z dalších dílů).
Kostra programu bude vypadat přibližně takto:
|
Pro všechny widgety platí stejná základní pravidla. Každý widget v GTK+ projde pěti fázemi:
- Vytvoření - v PHP-GTK se provádí vytvořením objektu, např. $okno = &new GtkWindow();
- Umístění - v této fázi umístíme widget do kontejneru pomocí příkazu $kontejner->add($widget);
- Napojení signálů - můžeme určit funkce, které se zavolají při určité události. Pomůže nám funkce $widget->connect("událost","volaná_funkce"); - za událost dosadíme některý z definovaných stavů, např. clicked (po kliknutí), a při této události se provede funkce volaná_funkce().
- Zobrazení - widget zobrazíme pomocí funkce $widget->show() a skryjeme pomocí $widget->hide().
- Zničení - o zničení widgetu se postará PHP-GTK automaticky.
Základem každé grafické aplikace jsou okna (snadno to zjistíte již podle názvů Windows či XWindow). Nejinak tomu je i v PHP-GTK. Jako první vám tedy představím widget GtkWindow.
V souladu s výše uvedenými pravidly vyvtvoříme nové okno příkazem $okno = &new GtkWindow();. Takto vytvořené okno si můžete dle libosti upravovat:
- $okno->set_name('jmeno'); - takto si nastavíte jméno okna, které budete používat v programu k odkazování na určité okno
- $okno->set_title('titulek'); - určuje text, který se zobrazí v záhlaví okna. Pokud titulek nezadáte, použije se jméno skriptu.
- $okno->set_usize(x,y); - nastaví velikost okna v pixelech po otevření.
- $okno->set_uposition(x,y); - určí pozici okna po otevření. Jde o vzdálenost v pixelech od levého horního rohu obrazovky.
- $okno->set_position(příznak); - jako příznak můžete uvést buď GTK_WIN_POS_CENTER - okno se otevře uprostřed obrazovky, nebo GTK_WIN_POS_MOUSE - okno se otevře na pozici kurzoru myši. Použití této funkce je lepší než určení pozice okna pomocí pevných souřadnic.
Tento seznam samozřejmě není úplný, obsahuje jen některé užitečné funkce. Pokud vás zajímají i další možnosti, podívejte se do manuálu GTK+ (anebo raději do manuálu PHP-GTK, až vznikne).
Na definované událost je GtkWindow vcelku chudé. Jediná využitelná událost je destroy, která nastane při zavření okna - kliknutí na křížek, stisknutí Alt+F4 apod. Tato událost se tedy obvykle spojuje s ukončením aplikace, ale fantazii se meze nekladou. Můžete například vytvořit neposednou aplikaci, která při pokusu o zavření otevře další okna :-).
V kostře programu jsme si nadefinovali funkci destroy(), takže zajištění ukončení aplikace je snadné: $okno->connect('destroy','destroy');.
PříkladDnešní díl se nachýlil ke konci, takže si vyzkoušíme, co jsme se dnes naučili. Otevřeme okno veliké 300x100 pixelů s titulkem Moje uplne prvni okno, které se otevře uprostřed obrazovky a při ukončení poslušně skončí aplikaci. Výsledkem vašeho snažení by mělo být takovéto okno:
Nejprve si zkuste takový krátký prográmek napsat sami. Když si nebudete vědět rady nebo si budete chtít zkontrolovat svůj výtvor, stáhněte si skriptík phpgtk4.php.
Těším se na shledání za týden u dalšího dílu seriálu. Příště se podívám na tlačítka a texty.
Obsah seriálu (více o seriálu):
- Seznámení s PHP-GTK
- PHP-GTK 2. - Instalace
- PHP-GTK 3. - Užitečné utility
- PHP-GTK 4. - Hrátky s okny
- PHP-GTK 5. - Texty
- PHP-GTK 6. - Rozmístění a tlačítka
- PHP-GTK 7. - MySQL
-
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