ПредишенСледващото

Кратко 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, вижте "Инструменти за разработчици. -> Изграждане на графичен потребителски интерфейс"

Работим с моно част 4

Ако центърът на заявление не е налице (например, не е инсталирано, или да използвате по-стара версия на Ubuntu), можете да инсталирате последната версия на разположение в хранилището, Glade версия с командата ап-да:

Тези, които желаят да получат най-новата версия на поляната, да го изтеглите от сайта на проекта.

Ако все пак искате да използвате libglade файловия формат, уверете се, че имате поляна-остър събрание:

UI дизайн с Glade

Преди да можете да създадете всеки интерфейс трябва да разгледа съответните спецификации и след това изгради едно дърво джаджа.

За простота (и за сравнение на различни подходи за създаването на интерфейса), ние използваме прозореца на предишната статия на GTK #.

интерфейс на програмата за намиране корените на уравнения

Работим с моно част 4

Ние назаем от пример йерархията на джаджи на екрана.

Йерархията на джунджурии за нашия интерфейс

Работим с моно част 4

След като концепцията ще бъде изчислена интерфейс, ние започваме да го изгради с помощта на Glade. Веднага след началото Glade в прозореца със свойства се появява на екрана, където можете да изберете необходимите параметри на проекта. Нека ги разгледаме по-подробно.

Настройки проекта

прозорец Project Properties

Работим с моно част 4

В "Проект формата на файла" ви позволява да изберете какъв тип файл описанието на интерфейса се генерира (GtkBuilder или libglade).

В "имената на обекти са уникални", ви позволява да определите стила на имена тест обект уникални. Ако ключът е в положение "в", а имена на обекти в целия проект, не може да бъдат едни и същи. Ако ключът е в положение "за всеки прозорец", която ще бъде проверена само уникалността на имена на обекти в рамките на прозореца в различни прозорци на същите имена в проекта може да се повтори.

В "Снимки товара" показва приложението, Glade, където да получите файлове с изображения, ако те са необходими джаджи. Това може да е директорията на проекта, директорията е посочено по отношение на директорията на проекта, или директория в абсолютен път.

В "Версия Задължително библиотека" ви позволява да изберете коя версия на Gtk + интерфейс ще бъде създаден, т.е. извършва правилно създадена от приложението. Оптимално изберете най-новата версия, но ако искате приложението да работи на по-стари версии, трябва да посочите най-малкото, с подкрепата на вашата версия на платформа.

С кликване върху бутона "Run" в секцията "Проверка на версията и да намерят остарели джаджи", построена интерфейс проверка се случи. Според резултатите от нея, се показва съобщение. Ако не се намерят грешки, това означава, че всички джунджурии, използвани в проекта са от значение за дадена версия на GTK +:

Работим с моно част 4

Ако проектът съдържа джаджи неподдържан посочено версия (например отваря описанието на интерфейса е създадена за версия на GTK + 2.16, а версия на GTK + 2.12 е в настройките на проекта), ще видите съобщение, че неуспешно удостоверяване, както и списък на установените грешки:

Работим с моно част 4

създаване на интерфейс

Следващата стъпка - създаването на прозорец за нов шаблон и давайки му името "MainWindow". За да направите това, се определят параметрите, като заглавието на прозореца ( "Изчисляване на корените"), позицията на прозореца (когато работи позиция, изберете "център"), ширина и височина на прозореца при стартиране.

Работим с моно част 4

На следващо място, с помощта на раздела "Общи", разположен на границата прозорец от 6 пиксела.

Работим с моно част 4

За контролния сигнал на прозореца за обработка на "сигнали" раздела добавят унищожи сигнален процесор (aktivirutsya полето за унищожаване) GtkObject основен обект и присвояване on_MainWindow_destroy манипулатор (добив от приложения).

Работим с моно част 4

В раздела "Сигнали" и сигналите в общи линии трябва да поговорим малко повече.

Данните, използвани в този раздел, са организирани в няколко колони.

В графата "сигнали" изброява сигналите на избрания джаджа се групират по йерархия на обекти майки. Колона "манипулатор" е изпълнен с първоначално име на функция, която трябва да се нарича, когато сигнал за активиране. Трябва да се отбележи, че веднага след като добавите манипулатор, ще има един ред за този сигнал:

Наличието на тази линия ви позволява да добавите още един манипулатор за сигнала. Така, че е възможно да се добавят някои процесори на един сигнал, който ще се нарича последователно.

"Данните за потребителя" на колона може да съдържа името на обекта, посочен в Glade-файл, който ще се предава на водача.

Колона "След" включва флаг. Ако тази опция е избрана, определения манипулатор ще се нарича след стандартен манипулатор.

В повечето случаи, "Информация за потребителя" колоната и "след" не се използва.

Нека се върнем към дизайна на интерфейса. Ръководейки се от едно дърво на джаджи, получени чрез проектиране на интерфейса Vbox да добавите три реда. В първия ред добавим рамка, на мястото Преглед на зададеното с две колони и всяка колона на мястото RadioButton. Също така, не забравяйте да се регистрирате в свойствата на текста за етикетите. В този момент, интерфейсът е, както следва:

Работим с моно част 4

Както се вижда, и двете ключове са определени като активни. Това не е вярно, тъй като те трябва да бъдат зависими едни от други. За да се справи със ситуацията, е необходимо чрез radiobutton2, кликнете върху бутона ". "Side на имота" група. " В прозореца, който се отваря, сложи точка (задаване на флага) от лявата страна на radiobutton1, което ще кажа, че radiobutton2 принадлежи към същата група, към radiobutton1.

Работим с моно част 4

Трябва да се отбележи, че тази операция не е необходима prodelyvat за radiobutton1, повече от това - това е грешка. Алгоритъмът работи е, че за първи път се създаде radiobutton1 и се присъединява към него radiobutton2. Сега комутатори стават зависими:

Работим с моно част 4

След по-нататък по джаджа дърво, добавете останалата част на прозореца на джаджа. В крайна сметка, трябва да получите следващата версия на интерфейса:

Работим с моно част 4

Ние добавяме към нашите интерфейс окончателните щрихи. В началото на полето за въвеждане на коефициента C трябва да е активен, защото първоначално ние включен превключвател за линейно уравнение, което не са взети C. За да се отговори на тази необходимост потърсете поле usolovie entry3 промените общите имот -> Чувствителен към "Да" на "Не" ,

Накрая добавете сигнални указатели:

  1. За да се установи radiobutton1 превключва сигнал манипулатор GtkToggleButton група. Името на манипулатор on_radiobutton1_toggled.
  2. За да се установи radiobutton2 превключва сигнал манипулатор GtkToggleButton група. Името на манипулатор on_radiobutton2_toggled.
  3. За бутон button1 (изчисление) установи кликвания на сигнал манипулатор GtkButton група. Името на манипулатор on_button1_clicked.
  4. За бутон 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 файл.

В резултат на изпълнение на приложението

Работим с моно част 4

Единственият недостатък на получения приложението е, че работи само с 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 технологии и ви позволява да създавате различни потребителски интерфейси за същите приложения в зависимост от различните желания на различните потребители.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!