Дјріс 6 Элементтерді автоматты орналастыру басќармасы
Ќўрастырылым менеджерлері (layout managers)
QLayoutItem класс
Ќўрастырылым менеджерлері (layout managers) иерархиясы
QLayout классы
Виджеттерді кґлденеѕ орналастыру
setSpacing() setMargin() јдістері
addWidget(), addLayout() removeWidget() јдістері
Кґлденеѕ жјне тік орналастырулар
QboxLayout классы
QVBoxLayout тігінен орналастыру
Бір ќўрастырылымды екіншісіне ендіре отырып кез-келген кїрделі орналастырымды ќўруєа болады. Енгізілген орналастыруларды
QGridLayout кестелік орналасу
952.50K
Category: internetinternet

Элементтерді автоматты орналастыру басќармасы. Дјріс 6

1. Дјріс 6 Элементтерді автоматты орналастыру басќармасы

Дәріс 6 Элементтерді автоматты
басқармасы
орналастыру
Құрастырылым
виджеттерінің
класстары
(Layout) Qt-ның мықты жақтарының бірі болып
табылады (виджетер құрастырылымы мен қосымша
құрастырылымы екеуі екі түрлі нәрсе болғандықтан
шатастыруға
болмайды).
Шындығында,
бұл
контейнерлер өлшемдері өзгертілгеннен кейін
терезелер автоматты түрде сол терезеде орналасқан
виджеттердің өлшемдері мен координаттарын
сәйкестендіреді. Бағдарламаның функционалдық
бөліміне ешқандай қосымша қосылмаса да, олар
сыртқы пішініндегі терезелер қосымшаларына
маңызды. Құрастырылым түрлі виджеттердің бірбіріне қатысты орналасуын анықтайды (Макс Шлее
128-148 бб).

2. Ќўрастырылым менеджерлері (layout managers)

Құрастырылым менеджерлері (layout managers)
Құрастырылым менеджерлері көлденең,
тік және кестелік орналастыруға мүмкіндік
береді.
Олар
тек
виджеттердің
орналастыруымен
ғана
емес
және
кіріктірілген құрасытырылымдарды да
басқаруға
қабілетті.
Бұл
күрделі
орналастыруларды құрастыруға мүмкіндік
береді.

3. QLayoutItem класс


Барлық құрастырылым менеджерлері
тобының негізі болып QLayout класы болып
табылады. Бұл QObject және QLayoutItem
(4 слайд) класстарынан бірден туындаған
абстрактілі класс. Бұл класс QLayout
тақырыптық файылынан анықталған.

4. Ќўрастырылым менеджерлері (layout managers) иерархиясы

Құрастырылым менеджерлері (layout managers)
иерархиясы

5. QLayout классы


Ескерту:өзінің құрастырылым класын құру –
өте сирек құбылыс, өйткені Qt ұсынатын
стандартты
орналастыру
класстарымен
тәжірибелік
түрде
барлық
орналастыру
міндеттерін шешуге болады. Бірақ, өзіңіздің
құрастырылым менеджерін құру қажеттігі
туындаса, онда QLayout класын addItem(), count(),
setGeometry(), takeAt() және itemAt() әдістерін іске
асырып қолдануға болады.

6.


QLayout класынан QGridLayout және
QBoxLayout класстары тарайды (4
слайд). QGridLayout класы кестелік
орналастыруды басқарады, ал QboxLayout
класы QHBoxLayout (көлденең) және
QVBoxLayout (тік) класстарына бөлінеді

7. Виджеттерді кґлденеѕ орналастыру

Виджеттерді көлденең орналастыру

8. setSpacing() setMargin() јдістері

setSpacing() setMargin() әдістері
• Виджеттер арасында кішкентай аралық қалады.
Бұл аралық визуалды бөлу үшін қажет. Оны
setSpacing() әдісіне керекті белгіні пикселмен
жіберіп жасауға болады. setMargin() әдісімен
құрастырылым
шекарасынан виджеттердің
шегінісін орнатуға болады, негізгі белгілер болып
5 және 10 пикселдер болып табылады. 8 слайд бұл
әдістерді көлденең мысалда көрсетеді.

9. addWidget(), addLayout() removeWidget() јдістері

addWidget(), addLayout()
removeWidget()
әдістері
addWidget()
әдісінің
көмегімен
құрастырылымға
виджеттерді
қосу
орындалады, ал addLayout() көмегімен
орнатылған құрастырылым менеджерлерін
қосуға болады. Егер қандай бір виджетті
құрастырылымнан өшіру қажет болса
removeWidget() әдісін виджетке сілтеме
жіберу арқылы қолдану ыңғайлы.

10. Кґлденеѕ жјне тік орналастырулар

Көлденең және тік орналастырулар
Көлденең немесе тік орналастырулар
үшін QBoxLayout класын немесе бұл
класстан бөлінетін QHBoxLayout және
QVBoxLayout класын қолдануға болады.

11. QboxLayout классы

• LeftToRight – көлденең орналастыру,
толтыру оңнан солға жүргізіледі;
• RightToLeft - көлденең орналастыру,
толтыру солдан оңға жүргізіледі
• TopToBottom - тік орналастыру, толтыру
жоғарыдан төменге қарай жүргізіледі;
• BottomToTop - тік орналастыру, толтыру
төменнен жоғарыға қарай жүргізіледі;

12.

• Бұл класс QLayout класын берілген
айқындамаға
қосу:
виджеттің

insertWidget(), орнатылған құрастырылым insertLayout(),
виджеттер
арасындағы
аралыққа- insertSpacing(), және созылу
факторына- insertStretch().
• Құрастырылымға addSpacing() әдісімен
екі виджет арасындағы берілген аралықты
бекітуге болады

13. QVBoxLayout тігінен орналастыру

14.

• QVBoxLayout
құрастырылымы
QBoxLayout-тан туындайды және барлық
виджеттерді жоғарыдан төмен қарай тек
қана тігінен реттейді. Қалған жағдайларда
ол
QBoxLayout
және
QHBoxLayout
класстарынан ешқандай айырмашылығы
жоқ. Егер листингісінде QHBoxLayout
класын QVBoxLayout-қа ауыстырса онда 13
слайдта
көрсетілген терезедегідей
бағдарлама алынады.

15. Бір ќўрастырылымды екіншісіне ендіре отырып кез-келген кїрделі орналастырымды ќўруєа болады. Енгізілген орналастыруларды

Бір құрастырылымды екіншісіне ендіре отырып кез-келген күрделі
орналастырымды құруға болады. Енгізілген орналастыруларды
ұйымдастыру үшін addLayout() әдісі бар, онда қосылатын құрастырылым
үшін,
екінші параметр болып созылу факторы беріледі.
Астында келтірілген суретте құрастырылымның екі менеджерін
орналастыруды
енгізу
мысалы
көрсетілген.
QVBoxLayout
құрастырылымында
QHBoxLаyout құрастырылымы орналасады.

16. QGridLayout кестелік орналасу

• Кестелік орналастыру үшін QGridLayout класы қолданылады,оның
көмегімен құрылымы күрделі орналастыруларды тез құрастыруға
болады. Кесте орналасулары бағандар мен жолдармен берілетін
ұяшықтардан тұрады. Кестеге виджетті addWidget() әдісі көмегімен
қосуға болады, ол үшін виджет орналасатын ұяшықтың орнын беру
жеткілікті. Кейде виджет бірден бірнеше орында орналасу қажеттігі
туындайды, ол үшін addWidget() әдісін қолдана отырып, қосымша
параметрлерінде виджет орналасатын жолдар мен бағандардың санын
көрсету жеткілікті.
English     Русский Rules