Dolgozunk a mono 4. rész

Rövid Glade és Glade #

Glade - a tervező, a felhasználói felület dolgozó cross-platform könyvtár elemek GTK interfész a GNOME asztali környezet, amely lehetővé teszi, hogy külön a külső képviselete a program logikája annak munkáját. Tény, hogy a Glade - egy ingyenes alkalmazás vizuális létrehozása a grafikus felhasználói interfész alapján egy cross-platform könyvtár GTK +. De Glade # - egy sor kapcsolatok libglade nyelven C #, hogy egy könyvtár a C # a csomag részét létrehozása a felhasználói felületen.







Létrehozása előtt felhasználói felület fejlesztése Glade rendkívül kényelmetlen és időigényes feladat. Az egész felület leírása közvetlenül a C ++ és össze kell állítani, és a program futtatásához a programozó nem látja, hogy ez a felület úgy néz ki, mint a képernyőn. Glade hagyjuk, hogy elhalasztja a fejlesztés egy interfész a magasabb minőségű, a vizuális szinten.

Ezt követően, még csak eszközök, hogy használja a vizuális programozási eszközök beépített felület használata nélkül Glade (pl Stetic, amely része a MonoDevelop környezet). Azonban Glade van egy jelentős előnye. Leírás az interfész Glade segítségével tervezett, külön a forráskódot, és egy külön XML dokumentum formátum. Ez lehetővé teszi például, hogy több variációját interfész, amely a felhasználó használhatja a legkényelmesebb neki.

Interface leírás által létrehozott Glade XML formátumban, és a forráskód kapcsolódnak egymáshoz libglade könyvtári funkciók vagy GtkBuilder funkciókat tartalmazza a tárban GTK +. Azaz Glade segítségével írja le a felületet két különböző formátumban - libglade (minden változata a Glade) és GtkBuilder (verzió óta Glade 3). Egyértelmű, hogy a munkát a felület leírása libglade méret, akkor is ugyanaz a neve a könyvtári rendszerben. A legújabb változat a GTK + könyvtár különleges létesítményeket építettek be, mely lehetővé teszi, hogy letölthető GtkBuilder formátumú fájlokat anélkül, hogy telepíteni más kiegészítő könyvtárak. Ez a „egyszerűsítés” fordították libglade méret a kategóriában elavult, így most az alkotók interfészek használatát javasoljuk GtkBuilder.

A Mono környezetben dolgozó Glade-fájlok, akkor használja eszközök GTK # (használható GtkBuilder) vagy speciális „wrapper» Glade # libglade a könyvtár (a linkeket dolgozni libglade könyvtár formátumok C #).

Az Ubuntu operációs rendszer telepítésére lehet tenni az Ubuntu Software Center, lásd a „Developer Tools -> Fejlesztés grafikus felhasználói felületek.”

Dolgozunk a mono 4. rész

Ha az alkalmazás központ nem áll rendelkezésre (például nincs telepítve, vagy egy régebbi változat az Ubuntu), akkor telepítse a legújabb elérhető a tárolóból, Glade parancs kiadásá- apt-get:

Azok, akik szeretnék, hogy a legújabb verzióját a Glade, letöltheti azt a helyszínre.

Ha továbbra is szeretné használni a fájlformátumot libglade, győződjön meg róla, hogy van a tisztás éles összeállítás:

UI Design Glade

Mielőtt bármilyen felületen létrehozni akkor figyelembe kell venni az előírásoknak, majd építeni egy fa widget.

Az egyszerűség kedvéért (és összehasonlítani a különböző megközelítéseket létre a felület), akkor használja az ablak a korábbi cikket GTK #.

A program felülete megtalálni a gyökereit egyenletek

Dolgozunk a mono 4. rész

Mi kölcsön a példa hierarchia kütyü a képernyőn.

A hierarchia a kütyük kezelőfelületünk

Dolgozunk a mono 4. rész

Miután a koncepciót dolgozott ki felület, elkezdjük építeni a Glade. Közvetlenül a rajt után Glade a tulajdonságok ablakban jelenik meg a képernyőn, ahol kiválaszthatja a kívánt paramétereket a projekt. Nézzük őket részletesen.

projekt beállítások

Project Properties ablakban

Dolgozunk a mono 4. rész

A „Project File Format” lehetővé teszi, hogy válassza ki, milyen típusú fájlt a felület leírása keletkezik (GtkBuilder vagy libglade).

A „Object egyediek,” lehetővé teszi, hogy meghatározza a stílusát vizsgálat tárgya egyediek. Ha a kapcsoló beállítása „alatt”, tárgyak neveit az egész projekt nem lehet azonos. Ha a kapcsoló a „minden ablak”, hogy ellenőrizni fogják csak az egyediségét objektum nevét az ablakon belül a különböző ablakok ugyanazon projekt nevét meg lehet ismételni.

A „Kép terhelés” jelzi a Glade alkalmazás, hol kap a képfájlokat, ha azok szükségesek kütyü. Ez lehet a projekt könyvtárba, a megadott könyvtárba, tekintettel a projekt könyvtárában, vagy a könyvtár abszolút elérési utat.

A „változat Kötelező Library” lehetővé teszi, hogy kiválassza, melyik változat a GTK + felület jön létre, azaz a végezhető el megfelelően az alkalmazás hozza létre. Optimálisan válassza ki a legújabb verzió, de ha azt szeretnénk, hogy az alkalmazás fut régebbi verziók, meg kell adni a legkevésbé támogatott a platform változata.

Ha rákattint a „Run” gombra a „Ellenőrizze a verzió, és megtalálja az elavult kütyü” beépített ellenőrző felületen jelentkezik. A tanulmány eredményei alapján, egy üzenet jelenik meg. Ha nem talált hibát, az azt jelenti, hogy az összes kütyü a projektben használt relevánsak egy adott változatát GTK +:

Dolgozunk a mono 4. rész

Amennyiben a projekt tartalmaz widgetek támogatott pontosított változatát (például nyitja a leírás létre változat GTK + 2.16, és a GTK + verzióra 2,12 van megadva a projekt beállítások), akkor megjelenik egy üzenet, hogy a hitelesítés nem sikerül, és egy lista a talált hibák:

Dolgozunk a mono 4. rész

létrehozni interface

A következő lépés - a létrehozása egy új sablon ablak, és így ez a név „MainWindow”. Ehhez állítsa paraméterek, mint az ablak címét ( „kiszámítása gyökerek”), az ablak pozícióját (ha fut helyzetben, válassza ki a „Center”), szélessége és magassága az ablak indításkor.







Dolgozunk a mono 4. rész

Ezután az „Általános” fülre, állítsa be az ablakot határ 6 pixel.

Dolgozunk a mono 4. rész

A feldolgozási ablak vezérlő jel a „jelek” fülön add elpusztítani jelfeldolgozó (aktivirutsya pusztulása box) GtkObject szülőobjektum és rendeljen hozzá on_MainWindow_destroy felvezető (hozam alkalmazások).

Dolgozunk a mono 4. rész

A lapon „jelzéseket”, és a jelek alapvetően meg kell beszélni egy kicsit.

A felhasznált adatok fülön vannak rendezve több oszlopot.

Az oszlop „Signals” felsorolja a jeleket a kiválasztott widget csoportosítva hierarchiáját eredeti objektumok. Oszlop „felvezető” kezdetben tele függvény neve, amelyet be kell hívni, ha az aktiváló jel. Meg kell jegyezni, hogy amint adunk hozzá egy felvezető, lesz egy sort erre jel:

A jelenléte ezen a vonalon lehetővé teszi, hogy egy újabb felvezető a jelet. Így lehetőség van arra, hogy adjunk néhány processzorok egy jel, hogy fogják hívni egymást.

Az oszlop „Felhasználói adatok” tartalmazhat az objektum nevét megadva a Glade-fájl, amely kerül átadásra a felvezető.

Oszlop „után” tartalmaz egy zászlót. Ha ezt a lehetőséget választja, akkor a megadott felvezető fogják hívni, miután az alapértelmezett kezelő.

A legtöbb esetben a „User Information” oszlop és „utána” nem használják.

Térjünk vissza a felület. Vezetett egy fa kütyü kapott tervezésekor felület VBox hozzá, három sorban. Az első sorban hozzátesszük Frame helyett hbox két oszloppal és minden oszlop helyén RadioButton. Továbbá ne felejtsük el, hogy regisztrálják magukat a tulajdonságait a szövegben a címkéket. Ezen a ponton, a felület az alábbiak szerint:

Dolgozunk a mono 4. rész

Amint látható, mindkét kapcsoló van beállítva, mint az aktív. Ez nem igaz, mert van, hogy függ egymástól. A helyzet orvoslására, szükség van a radiobutton2, kattintson a gombra. " „Oldalán a tulajdon” nevében. " A megnyíló ablakban egy pontot (állítsa a zászló) balra radiobutton1, amelyek azt mondják, hogy radiobutton2 tartozik ugyanabba a csoportba, mint a radiobutton1.

Dolgozunk a mono 4. rész

Meg kell jegyezni, hogy ez a művelet nem szükséges prodelyvat az radiobutton1, több, mint hogy - ez hiba volt. Az algoritmus úgy működik, hogy először hozzon létre radiobutton1 és csatlakoztak radiobutton2. Most kapcsolók válik függővé:

Dolgozunk a mono 4. rész

A további mentén fa felületi, hozzáadjuk a többi widget ablak. A végén meg kell szereznie a következő változata a felületet:

Dolgozunk a mono 4. rész

Azt add fel felület utolsó simításokat. Elején a beviteli mező az együttható C inaktívnak kell lenni, mert kezdetben lehetővé tettük kapcsoló lineáris egyenlet, amely nem faktor C. Ezen igények kielégítésére irányuló mező usolovie entry3 változik az ingatlan General -> Érzékeny a „Igen” „Nem” .

Végül hozzáadjuk jelkezelők:

  1. Annak megállapítása radiobutton1 toggled jelzéskezelõ GtkToggleButton csoport. A felvezető neve on_radiobutton1_toggled.
  2. Annak megállapítása radiobutton2 toggled jelzéskezelõ GtkToggleButton csoport. A felvezető neve on_radiobutton2_toggled.
  3. Mert button1 gomb (számítás) létrehozása, amelyre rákattintott jelzéskezelõ GtkButton csoport. A felvezető neve on_button1_clicked.
  4. Mert Button2 gomb (hozam) megállapítására, amelyre rákattintott jelzéskezelõ GtkButton csoport. A felvezető neve on_button2_clicked.

Annak megfontolását, hogy a két lehetőség segítségével egy interfész (a Glade # és használata GtkBuilder) menteni a fájlt két formátumban: Glade - elemzi GladeUI.glade és GtkBuilder - hogyan GtkBuilderUI.glade.

Glade-fájlok betöltésével az alkalmazás (libglade formátum)

GladeTest.cs hozzon létre egy fájlt az alábbiak szerint:

Ügyeljen arra, hogy a kulcsfontosságú pontokat a következő sorokat:

Ez a vonal betöltött felületet Glade XML formátumban. Az első paraméter határozza meg a fájl nevét a felület leírását, és a második - a nevét a fő ablak, amely betöltésre fájlból. A tény az, hogy a Glade XML fájl tartalmazhat több felső szintű ablak. Meg kell jegyezni, hogy a név a widget szükségszerűen azonos, és a leírás a felületet, és a második paraméter. A harmadik paraméter felelős a nemzetközi és bár nem voltunk érdekeltek.

Ez a parancs hajt végre automatikus kapcsolatot jelző kezelője. használatához szükséges jelfeldolgozási módszerek illeszkedő nevű nevét rakodók XML-leírás interfész működik megfelelően a programkódot.

Segítségével GetWidget módszer lehet kapni a widget objektum nevét. Erre azért van szükség, hogy hívja feldolgozási módszerek erre widget. Különösen a kijelzőn, akkor ez egy módszer megjelenítése.

Van egy másik módja, hogy a widget nevükben segítségével Glade.Widget attribútum:

Mint egy attribútum az átadott paramétert a widget nevét.

Most, kihasználva származó és az előző cikkben információkat, hajtsa végre a funkcionalitás a megállapítás a gyökereit egyenletek. Teljes programkód látható GladeTest.cs fájlt.

Az eredmény az alkalmazást futtató

Dolgozunk a mono 4. rész

Az egyetlen hátránya a kapott alkalmazást, hogy csak akkor működik, sootvetsvtvuyuschim XML fájl, azaz A GladeTest.exe fájlt kell elosztani GladeUI.glade fájlt az interfész leírása. Ha az XML-fájl elvész, akkor a program nem fog működni.

Ennek megelőzése érdekében, akkor beágyaz XML-fájlt a szerelvény források. Ehhez meg kell, hogy utasítsa az XML fordító elhelyezése a szerkezeten belül, mint erőforrás:

De az első, a fordítás előtt, meg kell változtatni egy sort a forráskód:

Azaz azt jelzi, hogy a kérelemben, hogy a dokumentumot kell tölteni a szerelvény források.

Glade-fájlok betöltésével az alkalmazás (GtkBuilder formátum)

Sajnos GtkBuilder normális támogatást egy stabil változata GTK # (jelenleg 2.12.10 van) nem. A fejlesztők úgy döntött, hogy nem dobja el 2.14-es változat, és koncentrálni a szélesebb megjelenése GTK # 3.0. Ennek ellenére vannak összeszerelés verzió 2.14.x, akkor a munka (csak akkor kell emlékezni, hogy ők nem stabil).

Ahhoz, hogy a lehetőséget, hogy a formátum GtkBuilder, telepíteni kell a könyvtár gtk-éles, Szemes által kifejlesztett Stephane Delcroix. A Maverik Meerkat (Ubuntu 10.10) szükséges könyvtárak, valószínűleg egyike tartalmazza a rendszeres tárolókban. A régebbi verziók akkor kell használni a harmadik féltől származó források:

Majd telepítse a két csomag:

Hosszú keresést érthető dokumentációt gtk-éles bab sem hiába, így meg kellett fordulni a forráskódot. Ki jobban foglalkozni a könyvtár vehet a kódot.

Lássuk, mi változik lesz szükség, ha lehet inicializálni GtkBuilder fájlformátum felületen. Ennek alapján vesszük meglévő forráskód GladeTest.cs, és mentse néven GtkBuilderTest.cs.

A legegyszerűbb esetben, akkor ki kell cserélni az összes tárgyat Glade.XML GtkBeans.Builder összes attribútumot [Glade.Widget] szóló [GtkBeans.Builder.Object].

Az alábbiakban a forráskód részt, amely feldolgozásra került:

Megjegyezzük, hogy ha összeállításakor nincs értelme megadni a paraméter -pkg: tisztás éles-2.0, mivel Gtk.Builder szerepel a gtk-éles, és meg kell adni csak az összeszerelés -pkg: gtk-éles beans2.0. XML fájlok szerepelnek a források:

Alapértelmezett könyvtár gtk-éles Szemes nem lehet elhelyezni a GAC, ezért mielőtt elkezdené hozzá kell adnunk egy könyvtárat őket egy változó környezetben MONO_PATH:

Most már az alkalmazás futtatásához:

GtkBuilder ellen Glade #

És végül, fontolja meg egy igen érdekes módszert végrehajtani GtkBuilder, ami azt mutatja, egy külön előny GtkBuilder előtt Glade #. Ez a módszer GetRawObject, amely lehetővé teszi, hogy hozzon létre kütyü letölthető az XML-fájlt, de ez lehetővé teszi számukra, hogy közvetlenül a tárgyak, mint a GTK #.

Mi változik a példánkban, és mentse néven GtkBuilderTest_RawData.cs.

Minden módszer, kivéve a Main, majd az egyik beágyazott osztály a MainWindow örökölt Gtk.Window és kap ez a tárgy a Builder:

Eseménykezelõket is beletartoznak az osztály MainWindow. Az egyetlen dolog, amit meg kell javítani őket -, hogy változik a paraméter main_wnd tervez új MessageDialog a beállításokról.

Fő funkció megy keresztül az alábbi módosításokat:

következtetés

Abban a pillanatban, hogy építsenek egy interfész segítségével GTK # azt jelenti, a legtöbb esetben a technológia Glade #. Bár úgy vélik, elavult, de az a tény, hogy a megvalósítás a stabil GtkBuilder még nem létezik, akkor azt felhasználja.

Azonban reméljük, hogy a kibocsátás a GTK # 3 a sarkon, és hamarosan, annak érdekében, hogy kihasználják a hatalom GtkBuilder, nem kell telepíteni a harmadik fél könyvtárak instabil.

Magukat Glade # GtkBuilder technológiák és lehetővé teszi, hogy különböző felhasználói felületek ugyanazokat az alkalmazásokat szerint a különböző igények különböző felhasználók számára.




Kapcsolódó cikkek