GTK# - Základní popis

V kategorii: .NET / Mono | 9.Březen 2008 v 22:05

Programovat Mono aplikace může­me v libolném tex­tovém editoru, av­šak doporučuji použít MonoDevelop. Pro vývoj pod Windows se dají také sehnat SDK do Visual Studia.

alt Monodevelop

Vzhled MonoDevelopu se dá poměrně pěkně upravit do podoby Visual studia, sice je ještě stále pod vývojem a má menší i větší mouchy např. není v něm defaultně integrovaný debugger, ale dá se s ním rozumně pracovat.

Design si může­me navrhnout ně­kolika způsoby, jed­nak můžeme pou­žít integrova­ný nástroj v Mo­noDevelop - Stetic, který nám vygeneruje *.stetic soubor ve formátu XML obsahující rozmístění komponent a jejich událostí (signálů), a nebo můžeme externí aplikaci Glade, patřící do typu RAD (Rapid Application Development) aplikací. Generuje nám rovněž XML strukturu designu, která je poměrně srozumitelná, takže není problém napsat si to XML i bez použití WYSIWYG editoru a rovnou z příkazové řádky pomocí mcs zkompilovat program.

Osobně preferuji nástroje dostupné v IDE, takže následující příklady se nebudu zabývat Glade, ale pouze používáním Stetic designeru a nebo ručního pozicování v kódu aplikace.

V Gtk je nejabstraktnější třída Gtk.Widget, podobně jako je v samotném .NET třída object. Od ní je odvozená další důležitá třída, kterou budeme potřebovat a to je Gtk.Container, který nám uchovává jednotlivé widgety (textbox, label, button atd.) a spravuje jejich vlastnosti a layout. Nejběžnější kontejnery jsou VBox, HBox, Table a Fixed. Pokud jste byli zvyklí programovat ve Windows Forms, tak vás bude zájímat kontejner Fixed, do kterého se ukládají Widgety s absolutně danou pozicí. Ostatní kontejnery známe z Windows Forms jako obyčejné komponenty např. TabControl – zde je to kontejner Notebook nebo komponenta GroupBox – zde kontejner Frame.

Kromě namespace Gtk budeme někdy pracovat s Gdk. Knihovna Gdk nám poskytuje abstraktní vrstvu mezi GTK+ widgetem a používaným okenním manažerem, takže místo toho, aby přímo probíhalo volání X systému, tak aplikace volá Gdk knihovnu, když potřebuje něco vykreslit na obrazovku nebo odchytit události. Tato vrstva navíc nám poskytuje několik výhod, například zvyšuje portabilitu aplikace (pro Windows je hotová) nebo kontroluje parametry, které se předávají okennímu manažeru. Za všechny jmenujme třeba knihovnu Cairo, která nám poskytuje API pro práci s vektorovou grafikou. Přirovnal bych to zhruba k WPF a GDI+ od Microsoftu nebo Quartz 2D od Apple.

Příště se podíváme na práci s kompentami – jejich vlastnosti, odchytávání signálů atd.

Zalinkuj! Přidej na topčlánky.cz Pošli do vybrali.sme.sk Jaggni to! Přidej na del.icio.us

Žádný komentář »

Zatím žádné reakce.


RSS komentářů k tomuto článku.

Zanechte komentář


 Komentáře můžete formátovat pomocí Texy!