Кратко Glade и Glade #
Glade - е дизайнер на потребителския интерфейс за работа с различни платформи библиотечни елементи GTK интерфейси в графичната среда GNOME, която ви позволява да се разделят на външното представителство на програмата от логиката на нейната работа. В действителност, Glade - е безплатна програма за визуално създаване на графични потребителски интерфейси, базирани на различни платформи библиотека GTK +. Но Glade # - е набор от връзки с libglade в езика C #, това е една библиотека в C # част от пакета за създаване на потребителския интерфейс.
Преди създаването на развитие потребителски интерфейс Glade е изключително неудобно и отнема време. Целият интерфейс е описан директно в C ++ и да съставят и стартирате програмата, програмистът не може да се види как този интерфейс изглежда на екрана. Glade право да отложи създаването на съвместими с по-високо качество, визуален план.
Впоследствие имаше инструменти, че използването на визуални инструменти за програмиране, построени интерфейс, без да използвате Glade (например, Stetic, която е част от MonoDevelop среда). Въпреки това, Glade има едно значително предимство. Описание на интерфейса проектиран в Glade, отделно от изходния код, и е отделен формат XML документ. Това дава възможност, например, за създаване на множество варианти на интерфейс, който потребителят може да се използват по най-удобния за него.
описание интерфейс, създаден от Glade в XML формат, както и изходния код са свързани помежду си с помощта на libglade библиотечни функции или GtkBuilder функции, включени в обект библиотеката GTK +. Т.е. Glade ви позволява да се опише интерфейса в два различни формата - libglade (всички версии на поляната) и GtkBuilder (от версия Glade 3). Ясно е, че за работа с описание на интерфейса в libglade формат, трябва да имат едно и също име в библиотечната система. Последните версии на GTK + библиотека специални съоръжения са въведени, които ви позволяват да сваляте файлове GtkBuilder формат без да се налага да инсталирате други допълнителни библиотеки. Тази "опростяване" преведено libglade формат в категорията на остарели, така че сега създателите на интерфейси препоръчваме да използвате GtkBuilder.
В Mono среда за работа с Glade-файлове, можете да използвате инструменти GTK # (за използване с GtkBuilder) или специална "обвивка» Glade # libglade за библиотеката (набор от връзки за работа с libglade библиотечни формати в C #).
Инсталацията на Ubuntu OS може да бъде направено от Центъра за Software Ubuntu, вижте "Инструменти за разработчици. -> Изграждане на графичен потребителски интерфейс"
Ако центърът на заявление не е налице (например, не е инсталирано, или да използвате по-стара версия на Ubuntu), можете да инсталирате последната версия на разположение в хранилището, Glade версия с командата ап-да:
Тези, които желаят да получат най-новата версия на поляната, да го изтеглите от сайта на проекта.
Ако все пак искате да използвате libglade файловия формат, уверете се, че имате поляна-остър събрание:
UI дизайн с Glade
Преди да можете да създадете всеки интерфейс трябва да разгледа съответните спецификации и след това изгради едно дърво джаджа.
За простота (и за сравнение на различни подходи за създаването на интерфейса), ние използваме прозореца на предишната статия на GTK #.
интерфейс на програмата за намиране корените на уравнения
Ние назаем от пример йерархията на джаджи на екрана.
Йерархията на джунджурии за нашия интерфейс
След като концепцията ще бъде изчислена интерфейс, ние започваме да го изгради с помощта на Glade. Веднага след началото Glade в прозореца със свойства се появява на екрана, където можете да изберете необходимите параметри на проекта. Нека ги разгледаме по-подробно.
Настройки проекта
прозорец Project Properties
В "Проект формата на файла" ви позволява да изберете какъв тип файл описанието на интерфейса се генерира (GtkBuilder или libglade).
В "имената на обекти са уникални", ви позволява да определите стила на имена тест обект уникални. Ако ключът е в положение "в", а имена на обекти в целия проект, не може да бъдат едни и същи. Ако ключът е в положение "за всеки прозорец", която ще бъде проверена само уникалността на имена на обекти в рамките на прозореца в различни прозорци на същите имена в проекта може да се повтори.
В "Снимки товара" показва приложението, Glade, където да получите файлове с изображения, ако те са необходими джаджи. Това може да е директорията на проекта, директорията е посочено по отношение на директорията на проекта, или директория в абсолютен път.
В "Версия Задължително библиотека" ви позволява да изберете коя версия на Gtk + интерфейс ще бъде създаден, т.е. извършва правилно създадена от приложението. Оптимално изберете най-новата версия, но ако искате приложението да работи на по-стари версии, трябва да посочите най-малкото, с подкрепата на вашата версия на платформа.
С кликване върху бутона "Run" в секцията "Проверка на версията и да намерят остарели джаджи", построена интерфейс проверка се случи. Според резултатите от нея, се показва съобщение. Ако не се намерят грешки, това означава, че всички джунджурии, използвани в проекта са от значение за дадена версия на GTK +:
Ако проектът съдържа джаджи неподдържан посочено версия (например отваря описанието на интерфейса е създадена за версия на GTK + 2.16, а версия на GTK + 2.12 е в настройките на проекта), ще видите съобщение, че неуспешно удостоверяване, както и списък на установените грешки:
създаване на интерфейс
Следващата стъпка - създаването на прозорец за нов шаблон и давайки му името "MainWindow". За да направите това, се определят параметрите, като заглавието на прозореца ( "Изчисляване на корените"), позицията на прозореца (когато работи позиция, изберете "център"), ширина и височина на прозореца при стартиране.
На следващо място, с помощта на раздела "Общи", разположен на границата прозорец от 6 пиксела.
За контролния сигнал на прозореца за обработка на "сигнали" раздела добавят унищожи сигнален процесор (aktivirutsya полето за унищожаване) GtkObject основен обект и присвояване on_MainWindow_destroy манипулатор (добив от приложения).
В раздела "Сигнали" и сигналите в общи линии трябва да поговорим малко повече.
Данните, използвани в този раздел, са организирани в няколко колони.
В графата "сигнали" изброява сигналите на избрания джаджа се групират по йерархия на обекти майки. Колона "манипулатор" е изпълнен с първоначално име на функция, която трябва да се нарича, когато сигнал за активиране. Трябва да се отбележи, че веднага след като добавите манипулатор, ще има един ред за този сигнал:
Наличието на тази линия ви позволява да добавите още един манипулатор за сигнала. Така, че е възможно да се добавят някои процесори на един сигнал, който ще се нарича последователно.
"Данните за потребителя" на колона може да съдържа името на обекта, посочен в Glade-файл, който ще се предава на водача.
Колона "След" включва флаг. Ако тази опция е избрана, определения манипулатор ще се нарича след стандартен манипулатор.
В повечето случаи, "Информация за потребителя" колоната и "след" не се използва.
Нека се върнем към дизайна на интерфейса. Ръководейки се от едно дърво на джаджи, получени чрез проектиране на интерфейса Vbox да добавите три реда. В първия ред добавим рамка, на мястото Преглед на зададеното с две колони и всяка колона на мястото RadioButton. Също така, не забравяйте да се регистрирате в свойствата на текста за етикетите. В този момент, интерфейсът е, както следва:
Както се вижда, и двете ключове са определени като активни. Това не е вярно, тъй като те трябва да бъдат зависими едни от други. За да се справи със ситуацията, е необходимо чрез radiobutton2, кликнете върху бутона ". "Side на имота" група. " В прозореца, който се отваря, сложи точка (задаване на флага) от лявата страна на radiobutton1, което ще кажа, че radiobutton2 принадлежи към същата група, към radiobutton1.
Трябва да се отбележи, че тази операция не е необходима prodelyvat за radiobutton1, повече от това - това е грешка. Алгоритъмът работи е, че за първи път се създаде radiobutton1 и се присъединява към него radiobutton2. Сега комутатори стават зависими:
След по-нататък по джаджа дърво, добавете останалата част на прозореца на джаджа. В крайна сметка, трябва да получите следващата версия на интерфейса:
Ние добавяме към нашите интерфейс окончателните щрихи. В началото на полето за въвеждане на коефициента C трябва да е активен, защото първоначално ние включен превключвател за линейно уравнение, което не са взети C. За да се отговори на тази необходимост потърсете поле usolovie entry3 промените общите имот -> Чувствителен към "Да" на "Не" ,
Накрая добавете сигнални указатели:
- За да се установи radiobutton1 превключва сигнал манипулатор GtkToggleButton група. Името на манипулатор on_radiobutton1_toggled.
- За да се установи radiobutton2 превключва сигнал манипулатор GtkToggleButton група. Името на манипулатор on_radiobutton2_toggled.
- За бутон button1 (изчисление) установи кликвания на сигнал манипулатор GtkButton група. Името на манипулатор on_button1_clicked.
- За бутон BUTTON2 (добив) да създаде много кликвания сигнал манипулатор GtkButton група. Името на манипулатор on_button2_clicked.
За да се приеме от двете опции, използващи интерфейс (с помощта на Glade # и използването GtkBuilder) запишете файла в два формата: Glade - име GladeUI.glade и GtkBuilder - как GtkBuilderUI.glade.
Glade зареждане на файлове в приложението (формат libglade)
GladeTest.cs създадете файл, както следва:
Обърнете внимание на ключовите точки в следните направления:
Тази линия е зареден интерфейс от Glade XML файлов формат. Първият параметър указва името на файла на описанието на интерфейса, а вторият - на името на главния прозорец, който се зарежда от файл. Факт е, че в Glade XML файл може да съдържа няколко прозореца най-високо ниво. Трябва да се отбележи, че името на програмката, трябва задължително да е същото, както и в описанието на интерфейса, и втори параметър. Третият параметър е отговорен за интернационализация и докато ние не се интересуват.
Тази команда извършва автоматично свързване с манипулатор сигнал. необходимо да се използват методи за обработка на сигнала, чиито имена съвпадат с имената на служителите, изпълняващи XML-описания интерфейс, за да работи правилно в програмния код.
С помощта на метод GetWidget можете да получите джаджа обекта от името му. Това е необходимо, за да се обадя методи за обработка на тази джаджа. По-специално, на дисплея, можете да го наричат метод Show.
Има и друг начин да получите най-джаджа от тяхно име, като се използват Glade.Widget атрибут:
Като атрибут на параметъра премина към името на джаджа.
Сега, като се възползва, получени от този и предишния информацията статия, да прилага функцията за намиране корените на уравнения. Пълен програмен код, показан на GladeTest.cs файл.
В резултат на изпълнение на приложението
Единственият недостатък на получения приложението е, че работи само с sootvetsvtvuyuschim XML файл, т.е. с GladeTest.exe файл трябва да бъде разпределен GladeUI.glade подаде описанието на интерфейс. Ако XML-файлът се губи, а след това програмата няма да работи.
За да предотвратите това, можете да вградите XML-файл в средствата за монтаж. За да направите това, трябва да се инструктира поставянето на XML компилатор в рамките на събранието като ресурс:
Но първо, преди съставянето, трябва да се промени един ред в изходния код:
Това означава, че тя показва приложението, че документът трябва да се зареждат от средствата за монтаж.
Glade зареждане на файлове в приложението (формат GtkBuilder)
За съжаление GtkBuilder нормална поддръжка за стабилна версия на GTK # (в момента 12.02.10 е) не. Разработчиците са решили да не пусне версия 2.14, и да се съсредоточи върху по-широк освобождаването на GTK # 3.0. Независимо от това, че има версия за 2.14.x, можете да използвате, за да работи (само трябва да се помни, че те са нестабилни).
За да получите възможността да работя с GtkBuilder формат, трябва да инсталирате на библиотеката GTK-остри зърна, разработени от Stephane Delcroix. В Маверик сурикатите (Ubuntu 10.10) необходимите библиотеки, има вероятност да бъдат включени в един от най-редовните хранилищата. За по-стари версии, което трябва да се използва от трети страни хранилища:
И след това да инсталирате двата пакета:
Long търси в разбираеми документация GTK-остри зърна, нито да не се ползват, така че трябваше да се обърнат към изходния код. Кой повече, за да се справят с библиотеката може да отнеме кода тук.
Нека да видим какви промени ще бъдат необходими, ако се използва за инициализиране интерфейс формат GtkBuilder файл. Като основа поемаме съществуващия код GladeTest.cs източник и да го запишете под GtkBuilderTest.cs името.
В най-простия случай, ще трябва да замени всички обекти на Glade.XML GtkBeans.Builder всички атрибути [Glade.Widget] на [GtkBeans.Builder.Object].
По-долу е част от изходния код, който е обработен:
Имайте предвид, че при съставянето няма смисъл да се използва параметъра -pkg: поляна-остър 2.0, тъй като Gtk.Builder включени в GTK-остър и трябва да добавите само монтаж -pkg: GTK-остър beans2.0. XML файлове са включени в средствата:
По подразбиране библиотека GTK-остър боб може да не бъдат поставени в Съвета по общи въпроси, така че преди да започнете, трябва да добавите директорията, за да ги в променлива MONO_PATH среда:
Сега можете да стартирате приложението:
GtkBuilder срещу Glade #
И накрая, помислете за един доста интересен метод, приложен в GtkBuilder, което показва ясно предимство GtkBuilder преди Glade #. Този метод GetRawObject, което ви позволява да създавате джаджи изтеглени от XML-файл, но това им позволява да работят директно с обекти като GTK #.
Сменяме нашия пример и да го запишете под GtkBuilderTest_RawData.cs името.
Всички методи, с изключение на Майн, ще направят вложено клас в MainWindow, наследена от Gtk.Window и да го получите на обекта на строителя:
манипулатори на събития също са включени в MainWindow клас. Единственото нещо, което трябва да ги оправя - е да се промени параметъра да main_wnd дизайн нови MessageDialog за този вид настройка.
Основна функция ще претърпи следните промени:
заключение
В момента за изграждане на интерфейс с помощта на GTK # означава най-приложима технология Glade #. Въпреки че се смята остарели, но фактът, че реализацията на стабилна GtkBuilder все още не съществува, той се възползва от нея.
Въпреки това, ние се надяваме, че освобождаването на GTK # 3 точно зад ъгъла, а скоро, за да се възползва от силата на GtkBuilder, не е нужно да инсталирате библиотеки на трети страни нестабилна.
Самите Glade # GtkBuilder технологии и ви позволява да създавате различни потребителски интерфейси за същите приложения в зависимост от различните желания на различните потребители.
Свързани статии