[Qt QML 입문 28] QML anchors로 화면 배치하기 | 좌표 대신 관계
너드 순식이의 Qt 이야기
0:00 / 0:00
[Qt QML 입문 28] QML anchors로 화면 배치하기 | 좌표 대신 관계
13 просмотров · 12 дней назад
너드 순식이의 Qt 이야기
18 подписчиков
13 просмотров · 12 дней назад
27강에서 휠과 키보드로 화면을 탐색했다면, 이번에는 그 요소들을 어디에 놓을지입니다. 창 크기가 달라져도 헤더는 위에, 설명은 가운데에 남아 있어야 합니다. 좌표를 매번 계산하는 대신 Item 사이의 위치 관계를 선언하는 anchors를 다룹니다.
핵심은 하나입니다. 한 축에서 위치와 크기를 정하는 주체가 둘이 되지 않게 하는 것. 공식 문서가 이 경우를 두고 쓰는 단어는 "the result is undefined"이고, 그런 경우를 다섯 가지로 못 박아 두었습니다. (기준: Qt 6.8.x)
주요 내용
x: 20은 거리를 고정하고, anchors는 관계를 선언한다
일곱 개의 anchor line — left · horizontalCenter · right · top · verticalCenter · baseline · bottom
★ 연결 대상이 형제와 직계 부모뿐인 이유는 "성능 때문"
anchors.fill은 크기까지, anchors.centerIn은 위치만 정한다
★ 여백은 연결된 anchor에만 붙는다 — 연결 없는 변의 margin은 무시된다
형제를 기준으로 한 간격과 baseline 정렬
★ 결과가 undefined가 되는 다섯 가지 충돌
x+anchors.left / 좌우+width / 위아래+y·height / fill+width / Positioner 자식+anchors
anchors · Positioner · Layout — 무엇을 언제 고를까
Layout 직접 자식에는 anchors 대신 Layout.* 붙임 속성
★ 단, anchors.fill: parent는 "부모 Layout이 없는 Layout"에만 허용된다
★ 크기 후보에는 순서가 있다 — Layout.preferredWidth → implicitWidth, 그리고 implicit 0은 무효
★ width를 직접 바꿔도 레이아웃은 다시 배치하지 않는다
★ AnchorChanges는 여백을 바꾸지 못한다 — margin은 PropertyChanges로
어긋났을 때의 4단계 진단
더 체계적인 Qt/QML 글과 예제는 Linu.Dev 테크 아카이브에서 확인하세요.
https://bit.ly/4zd3tQB
Qt의 새로운 소식은 인스타그램과 틱톡에서도 만나보세요.
인스타그램: / linu.dev
틱톡: / soonsik_qt
28강 독립사이트 글:
https://linu-dev-qt-qml.crazydk76.cha...
28강 네이버 블로그 글:
https://blog.naver.com/linu_kim/22437...
#Qt #QML #QtQuick #anchors #QtQuickLayouts #Layout #Qt6 #UI배치 #반응형UI #프로그래밍강의 #LinuDev #너드순식이