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 6. - Rozmístění a tlačítka
30. července 2001, 00.00 | V dnešním díle seriálu o propojení GTK+ a PHP se podíváme na velice důležitou vlastnost - umisťování prvků v okně. A dostane se i na tlačítka.
V dnešním díle seriálu o propojení GTK+ a PHP se podíváme na velice důležitou vlastnost - umisťování prvků v okně. A dostane se i na tlačítka.
BoxyJistě už jste přišli na to, že házet widgety do okna bez ladu a skladu není to pravé. K pohodlnému rozmístění widgetů přesně podle svých přání stačí použít kontejnery. Připomenu, že kontejnery jsou speciální widgety, do kterých lze umístit jiné widgety.
Nejpoužívanější kontejner v GTK+ je samozřejmě okno. Pokud pomineme tento všeobecně používaný objekt, další na řadě jsou boxy. Množné číslo jsem použil z důvodu, že boxů existují dva druhy - vertikální a horizontální (neboli svislé a vodorovné). Někteří z vás se již možná dovtípili, že toto rozdělení má cosi společného s konečným výsledkem. Ano, je to přesně tak - widgety vložené do vertikálního boxu se zobrazují nad sebou, kdežto widgety v horizontálním boxu se zobrazují pěkně vedle sebe.
Box vytvoříte pomocí $vbox = &new GtkVBox(); (pro svislý box) či $hbox = &new GtkHBox(); (pro box vodorovný). Ať už si vyberete jakýkoli box, můžete použít dva parametry. První parametr je typu boolean (tedy TRUE nebo FALSE) a určuje, zda mají všechny widgety obsažené v boxu dostat stejný prostor (TRUE znamená, že dostanou stejný prostor). Druhým parametrem je číslo, které určí vzdálenost v pixelech mezi jednotlivými widgety.
Widgety do boxu přidáte pomocí funkce $box->add($widget); a zobrazují s v pořadí, v jakém je přidáte. Ve svislém boxu se widgety zobrazují zhora dolů, u vodorovného zleva doprava. Nic vám nebrání do boxu vložit jiný box.
Teď si ukážeme malý příklad práce s boxy.
|
Výsledkem tohoto kódu bude takovéto okno. Pro snadnější orientaci jsem obtáhl jednotlivé boxy. "Hlavní, nejvyšší" $hbox1 je označen zeleně. Do něj vložený $vbox označuje barva modrá a $hbox2 je zvýrazněn červeně.
TlačítkaUživatel musí mít pocit, že dokáže chování programu jakýmsi způsobem ovlivnit. Tento pocit může získat kupříkladu klikáním na tlačítka.
Vytvoření tlačítka jste již mohli zpozorovat v předchozím případě. Nové tlačítko si vyrobíte funkcí $tlacitko = &new GtkButton('popis');, přičemž jako popis můžete uvést nápis na tlačítko.
Zajímavými funkcemi tlačítko příliš neoplývá. Uvedu snad jen $tlacitko->set_relief();, čímž můžete určit, jak moc bude tlačítko vystouplé. Do závorky uveďte GTK_RELIEF_NORMAL (standardní vzhled), GTK_RELIEF_HALF (tlačítko je vystouplé jen z části) nebo GTK_RELIEF_NONE (tlačítko splývá s okolím).
Ovšem na druhou stranu tlačítko oplývá velkým výběrem událostí. Funkce můžete napojit na tyto událost: pressed (když stisknete a držíte tlačítko), released (po uvolnění předchozího držení), clicked (kliknutí na tlačítko), enter (obdoba OnMouseOver z Javascriptu; myš se pohybuje nad tlačítkem) a leave (podobné OnMouseOut; myš odjede z tlačítka).
Pro jistotu připomenu, jak napojit funkci k události.
$tlacitko->connect('clicked','spoustena_funkce'); Takto spustíte funkci spoustena_funkce() po kliknutí na tlačítko.
Program použitý k demonstraci boxů si můžete stáhnout zde.
Příště již opustíme mělké vody předvádění jednotlivých widgetů a vyplujeme na širé moře celých aplikací. Jako první předvedu pěknou aplikaci pro přístup k MySQL. Pokud byste chtěli vidět nějakou speciální aplikaci (ale tak ať se vleze do jednoho článku), nebojte se napsat buď k diskuzi pod článek anebo do auditoria na Mageu
V přestávce do dalšího článku můžete studovat základy manuálu PHP-GTK.
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
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