[Qt QML 입문 25] QML Dialog와 Popup | 결정 흐름 만들기
너드 순식이의 Qt 이야기
0:00 / 0:00
[Qt QML 입문 25] QML Dialog와 Popup | 결정 흐름 만들기
8 просмотров · 3 недели назад
너드 순식이의 Qt 이야기
18 подписчиков
8 просмотров · 3 недели назад
24강에서 Button·TextField·Switch로 화면을 채웠다면, 이번에는 삭제처럼 되돌리기 어려운 동작 앞에서 한 번 더 묻는 방법을 다룹니다. 작은 확인 하나 때문에 새 페이지로 넘어가면 사용자는 원래 무엇을 하던 중이었는지 다시 기억해야 하고, 확인 없이 바로 실행하면 실수를 되돌릴 기회가 없습니다.
Dialog는 Popup을 상속한 타입으로 제목·내용·버튼 영역을 갖추고 답을 받습니다. Popup은 더 기본적인 요소라 내부 배치와 닫기 규칙을 직접 설계합니다. open()은 아무것도 바꾸지 않고, 바꾸는 일은 결과 신호에서만 일어납니다. (기준: Qt 6.8.x)
주요 내용
Dialog는 Popup을 상속 — 답을 받는 쪽과 직접 채우는 쪽
open()은 보여 줄 뿐, 데이터를 바꾸지 않는다
accepted · rejected · applied · discarded — 결과 신호 네 갈래
★ 문서가 "닫는다"고 적은 것은 accept()·reject()·done() 뿐
→ Discard로 삭제를 확정하면 onDiscarded에서 직접 close()
★ Popup의 좌표는 parent 기준 — Overlay.overlay와 mapToItem
★ Qt 6.8 신규 popupType — Popup.Item은 창 밖으로 나갈 수 없다
작은 창에서 메뉴가 잘리는 이유와 Popup.Window
★ 네이티브 메뉴에서는 커스텀 delegate가 그려지지 않는다
★ closePolicy 기본값은 CloseOnEscape | CloseOnPressOutside — 이미 둘 다 켜져 있다
취소는 되돌리는 것이 아니라 아직 적용하지 않는 것 — 임시 값과 저장 값 분리
★ modal 기본 false, focus 기본 false
"예/아니요" 대신 결과를 적는 버튼 문구
Popup 문제 4단계 진단
더 체계적인 Qt/QML 글과 예제는 Linu.Dev 테크 아카이브에서 확인하세요.
https://bit.ly/4zd3tQB
Qt의 새로운 소식은 인스타그램과 틱톡에서도 만나보세요.
인스타그램: / linu.dev
틱톡: / soonsik_qt
25강 독립사이트 글:
https://linu-dev-qt-qml.crazydk76.cha...
25강 네이버 블로그 글:
https://blog.naver.com/linu_kim/22442...
#Qt #QML #QtQuick #QtQuickControls #Dialog #Popup #Qt6 #UI개발 #프로그래밍강의 #LinuDev #너드순식이