Преглед садржаја
ГТК # помоћу контејнера нам омогућава да контролишемо положај виџета у прозору како бисмо могли да креирамо дизајн. Ови контејнери који имају различите карактеристике и служе за вођење дизајна и постављања компоненти или виџета унутар прозора.Тхе главни контејнери су:
- Контејнери са хоризонталним или вертикалним кутијама
- Контејнери са столовима
- Фиксни контејнер
- Оквири или контејнер рамова
Како користити контејнере према потребама или захтевима наше апликације
Контејнери са хоризонталним или вертикалним кутијама
Ако смо навикли на програмирање под оперативним системом Виндовс и његовом методологијом дизајна интерфејса превлачењем и испуштањем, ова врста контејнера је вероватно боља јер су виџети или компоненте позиционирани у прозору помоћу к координата, а како у систему Виндовс и то се цени.
Иако је то могуће са Гтк -ом и монодевелоп -ом, најбољи начин за усклађивање виџета је са оквирима. Постоје две врсте кутија хоризонтално или ХБок и вертикално или ВБок. Ова врста контејнера не зависи од величине екрана. Контејнери ХБок и ВБок брину се о аутоматском промени величине зоне коју нека компонента заузима.
Погледајмо пример са хоризонталним или вертикалним оквирима. Направићемо Ц # и Гтк пројекат у Монодевелопу.
Додељујемо му Вбок контејнер и у последњем реду додајемо Хбок контејнер.
Ова врста контејнера је мрежа са редовима и колонама која може бити корисна када је потребно да направимо мрежу на коју можемо поставити виџете, попут екрана за унос података. Погледајмо пример са табелом. Направићемо Ц # и Гтк пројекат у Монодевелопу, направићемо образац за унос података.
Потписујемо Вбок контејнер и у последњем реду додајемо Хбок контејнер, као што смо у претходном пројекту додали Менубар и дугмад испод, у центар додајемо контејнер табеле.
Уклонимо последњи ред, а затим ћемо у прву ћелију првог реда додати Вок контејнер за ознаке. Затим ћемо у другу ћелију првог реда додати Вок контејнер за унос или текстуална поља.
Сада ћемо додати а лабел Пхото и виџет Бирач датотека Дугме за одабир датотеке, Такође у трећи ред табеле додаћемо виџет за слике који ће бити онај који ће приказати фотографију, морамо узети у обзир да се слика налази у директорију компилације апликације у овом случају Отклањање грешака који се аутоматски генерише приликом извршавања. Изабрана слика је висока 100 к 100 пиксла у ширину.
Фиксни контејнери нам омогућавају да повлачимо и испуштамо видгет у фиксним положајима и са фиксним величинама. Овај контејнер не врши никакво аутоматско управљање изгледом, нити мења величину виџета. Користе се у неким апликацијама где су потребни виџети којима ће касније управљати код, попут игара, специјализоване апликације које раде са дијаграмима или графиком, као што су ОпенГЛ или 3Д.
Погледајмо пример где ћемо ставити фиксни контејнер и неколико слика.
Оквири или контејнер рамова
Оквири или оквири као у Висуал Студију користи се контрола Гроупбок, они се користе да садрже групу виџета унутра. Сврха оквира је да дефинише групни видгет по категоријама или повезаним одељцима, опционо може имати наслов. Положај наслова и стил оквира конфигуришите из својстава.
Ознака наслова појављује се у горњем левом углу оквира. Ако не унесете наслов, биће празан и наслов неће бити приказан. Текст налепнице се може променити помоћу Лабел проперти.
У а Рам можете комбиновати било који од горе наведених контејнера и обрнуто.
Хајде да направимо екран Мастер / Детаљ, користећи оквире. Ми ћемо створити а Ц # и Гтк пројекат у Монодевелопу и потписујемо Вбок контејнер са 4 реда и првом реду додајемо а Мени бар,
У други ред додајемо оквирни контејнер, наслов етикете ће бити производи и додељујемо му осенчену границу типа ИН.
У трећи ред Вбок -а стављамо сепаратор са виџетом Хоризонтал Сепаратор, а у последњи ред Вбок -а ставимо још један оквир и Треевиев.
публиц МаинВиндов (): басе (Гтк.ВиндовТипе.Топлевел) {Буилд (); // Креирам колоне и заглавља приказа стабла // Креирам колону производа Гтк.ТрееВиевЦолумн Производ цол = нев Гтк.ТрееВиевЦолумн (); цолПродуцто.Титле = "Производ"; // Креирам колону залиха Гтк.ТрееВиевЦолумн цолСтоцк = нови Гтк.ТрееВиевЦолумн (); цолСтоцк.Титле = "Залиха"; // Креирам колону са ценама Гтк.ТрееВиевЦолумн прицецол = нев Гтк.ТрееВиевЦолумн (); цолПрице.Титле = "Цена"; // Додајем колоне и насловљујем их у треевиев тввлиста.АппендЦолумн (цолПродуцт); тввлиста.АппендЦолумн (цолСтоцк); тввлиста.АппендЦолумн (прицецол); // Креирам модел података за складиштење и додајем три податка типа текста Гтк.ЛистСторе сторе = нев Гтк.ЛистСторе (типеоф (стринг), типеоф (стринг), типеоф (стринг)); // Додељујем модел ТрееВиев тввлиста.Модел = сторе; // Додајем податке у продавницу модела.АппендВалуес ("ТАБЛЕТ САМСУНГ", "5", "175"); сторе.АппендВалуес ("МАЦБООК ПРО", "10", "2680"); сторе.АппендВалуес ("СЕГАТЕ ДИСК 1 ТБ", "10", "85"); // Креирамо ћелију која ће приказивати производ Гтк.ЦеллРендерерТект продуцтЦелл = нови Гтк.ЦеллРендерерТект (); // Додајемо ћелију података о производу цолПродуцт.ПацкСтарт (продуцтЦелл, труе); // Додавање ћелије са подацима о залихама Гтк.ЦеллРендерерТект целлСтоцк = нев Гтк.ЦеллРендерерТект (); цолСтоцк.ПацкСтарт (целлСтоцк, тачно); // Додајте ћелију са подацима о ценама Гтк.ЦеллРендерерТект ПрицеЦелл = нев Гтк.ЦеллРендерерТект (); прицецол.ПацкСтарт (прицеЦелл, тачно); // Додајемо ћелије података у сваку колону и редови ће бити генерисани // цолПродуцто.АддАттрибуте (целлПродуцто, "тект", 0); цолСтоцк.АддАттрибуте (целлСтоцк, "текст", 1); прицеЦол.АддАттрибуте (прицеЦелл, "тект", 2); }Затим извршавамо и резултат ће бити следећи: