Popup QML Type
팝업 형식의 사용자 인터페이스 컨트롤의 기본 유형. 더 보기...
| Import Statement: | import QtQuick.Controls |
| Inherits: | |
| Inherited By: |
속성
- activeFocus : bool
- anchors.centerIn : Item
(since QtQuick.Controls 2.5 (Qt 5.12)) - availableHeight : real
- availableWidth : real
- background : Item
- bottomInset : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - bottomMargin : real
- bottomPadding : real
- clip : bool
- closePolicy : enumeration
- contentChildren : list<Item>
- contentData : list<QtObject>
- contentHeight : real
- contentItem : Item
- contentWidth : real
- dim : bool
- enabled : bool
(since QtQuick.Controls 2.3 (Qt 5.10)) - enter : Transition
- exit : Transition
- focus : bool
- font : font
- height : real
- horizontalPadding : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - implicitBackgroundHeight : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - implicitBackgroundWidth : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - implicitContentHeight : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - implicitContentWidth : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - implicitHeight : real
- implicitWidth : real
- leftInset : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - leftMargin : real
- leftPadding : real
- locale : Locale
- margins : real
- mirrored : bool
(since QtQuick.Controls 2.3 (Qt 5.10)) - modal : bool
- opacity : real
- opened : bool
(since QtQuick.Controls 2.3 (Qt 5.10)) - padding : real
- palette : palette
(since QtQuick.Controls 2.3 (Qt 5.10)) - parent : Item
- popupType : enumeration
(since 6.8) - rightInset : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - rightMargin : real
- rightPadding : real
- scale : real
- spacing : real
(since QtQuick.Controls 2.1 (Qt 5.8)) - topInset : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - topMargin : real
- topPadding : real
- transformOrigin : enumeration
- verticalPadding : real
(since QtQuick.Controls 2.5 (Qt 5.12)) - visible : bool
- width : real
- x : real
- y : real
- z : real
신호
- void aboutToHide()
- void aboutToShow()
- void closed()
- void opened()
방법
- void close()
- void forceActiveFocus(enumeration reason)
- void open()
상세 설명
Popup은 팝업 형태의 사용자 인터페이스 컨트롤의 기본 유형입니다. 이 컨트롤은 Window 또는 ApplicationWindow 와 함께 사용할 수 있습니다.
import QtQuick.Window
import QtQuick.Controls
ApplicationWindow {
id: window
width: 400
height: 400
visible: true
Button {
text: "Open"
onClicked: popup.open()
}
Popup {
id: popup
x: 100
y: 100
width: 200
height: 300
modal: true
focus: true
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
}
}Popup은 자체 레이아웃을 제공하지 않으며, 예를 들어 RowLayout 이나 ColumnLayout 을 생성하는 등의 방법으로 콘텐츠를 배치해야 합니다.
Popup의 자식으로 선언된 항목은 자동으로 Popup의 contentItem 에 부모-자식 관계가 설정됩니다. 동적으로 생성된 항목은 contentItem 에 명시적으로 부모-자식 관계를 설정해야 합니다.
팝업 레이아웃
다음 다이어그램은 창 내 팝업의 레이아웃을 보여줍니다:

팝업의 implicitWidth 과 implicitHeight 은 일반적으로 배경 및 콘텐츠 항목의 암시적 크기에 인셋(insets)과 패딩(paddings)이 더해진 값을 기반으로 합니다. 이러한 속성은 명시적인 width 이나 height 이 지정되지 않았을 때 팝업의 크기를 결정합니다.
contentItem 의 기하학적 구조는 패딩에 의해 결정됩니다. 다음 예제에서는 팝업의 경계와 콘텐츠 사이에 10px의 패딩을 할당합니다:
background 항목은 인셋이나 명시적인 크기가 지정되지 않은 한, 팝업의 전체 너비와 높이를 채웁니다.
음수 인셋을 사용하면 배경을 팝업보다 더 크게 만들 수 있습니다. 다음 예제에서는 음수 인셋을 사용하여 팝업 경계 바깥쪽에 그림자를 배치합니다:
Popup {
topInset: -2
leftInset: -2
rightInset: -6
bottomInset: -6
background: BorderImage {
source: ":/images/shadowed-background.png"
}
}팝업 유형
Qt 6.8부터 ` Menu`와 같은 일부 팝업은 플랫폼에 따라 세 가지 서로 다른 구현 방식을 제공합니다. ` popupType`을 설정하여 원하는 구현 방식을 선택할 수 있습니다.
팝업이 선호하는 유형을 사용할 수 있는지 여부는 플랫폼에 따라 다릅니다. Popup.Item 은 모든 플랫폼에서 지원되지만, Popup.Window 및 Popup.Native 은 일반적으로 데스크톱 플랫폼에서만 지원됩니다. 또한, 팝업이 native menubar 내부의 Menu 인 경우, 메뉴도 네이티브로 처리됩니다. 또한 메뉴가 다른 메뉴 내부의 하위 메뉴인 경우, 부모(또는 루트) 메뉴에 따라 유형이 결정됩니다.
팝업을 항목으로 표시하기
popupType 를 Popup.Item 로 설정하면, 팝업은 별도의 창으로 표시되지 않고 부모와 동일한 장면 내의 항목으로 표시됩니다. 이 항목은 해당 장면의 overlay 에 종속되며, 실제 창처럼 보이도록 스타일이 적용됩니다.
이 옵션은 다중 창을 지원하지 않는 플랫폼에서 특히 유용합니다. 또한 Qt 6.8 이전에는 이 옵션이 유일한 선택지였습니다.
팝업이 씬 내의 다른 항목들 위에 표시되도록 하려면 ` ApplicationWindow`를 사용하는 것이 좋습니다. ` ApplicationWindow `는 배경 어둡게 처리 효과도 제공합니다.
팝업을 별도의 창으로 표시하기
popupType 를 Popup.Window 로 설정하면, 팝업은 Qt::Popup 플래그로 구성된 최상위 window 내부에 표시됩니다. 창을 사용하여 팝업을 표시하면 팝업이 부모 창 위에 떠 있게 되며, 부모 창의 기하학적 영역 밖으로 배치할 수 있다는 장점이 있습니다. 그 외에는 팝업의 모양이 Popup.Item 를 사용할 때와 동일하게 표시되며, 즉 Popup.Item 를 사용할 때와 동일한 QML 델리게이트 및 스타일이 적용됩니다.
참고: 플랫폼이 Popup.Window 를 지원하지 않는경우 , Popup.Item 가 대체 방식으로 사용됩니다.
네이티브 팝업 표시
popupType 을 Popup.Native 로 설정하면, 플랫폼의 네이티브 팝업 창을 사용하여 팝업이 표시됩니다. 이 창과 그 모든 내용은 QML이 아닌 플랫폼에 의해 렌더링됩니다. 즉, 팝업에 할당된 QML 델리게이트는 렌더링에 사용 되지 않습니다. 예를 들어, ` Menu`에 이 옵션을 적용하면 플랫폼별 메뉴 API를 사용하여 구현됩니다. 일반적으로 이 경우 팝업의 외관과 사용감이 ` Popup.Window`보다 더 네이티브하게 느껴지지만, 동시에 외관과 동작과 관련된 플랫폼의 제한 사항 및 차이점을 겪게 됩니다. 이러한 제한 사항은 영향을 받는 하위 클래스(예: Menu)에 더 자세히 문서화되어 있습니다.
참고: 플랫폼이 ` Popup.Native`를 지원하지 않는경우 , ` Popup.Window `가 대체로 사용됩니다.
팝업 크기 조정
팝업 내에 항목이 하나만 사용되는 경우, 팝업은 포함된 항목의 암시적 크기에 맞게 크기가 조정됩니다. 따라서 레이아웃과 함께 사용하기에 특히 적합합니다.
Popup {
ColumnLayout {
anchors.fill: parent
CheckBox { text: qsTr("E-mail") }
CheckBox { text: qsTr("Calendar") }
CheckBox { text: qsTr("Contacts") }
}
}때로는 팝업 내에 두 개의 항목이 포함될 수도 있습니다:
Popup {
SwipeView {
// ...
}
PageIndicator {
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
}
}이 경우 팝업은 적절한 암시적 크기를 계산할 수 없습니다. PageIndicator 를 SwipeView 위에 고정하고 있으므로, 콘텐츠 크기를 뷰의 암시적 크기로 간단히 설정할 수 있습니다:
Popup {
contentWidth: view.implicitWidth
contentHeight: view.implicitHeight
SwipeView {
id: view
// ...
}
PageIndicator {
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
}
}참고: popup items 를 사용할때 , 팝업의 content item 는 overlay 의 자식 요소가 되며, 팝업의 부모 요소 내부에 위치하지 않습니다. 이 때문에 팝업이 위치한 트리에 적용된 scale 는 시각적인 팝업에는 적용되지 않습니다. 예를 들어 ComboBox 의 팝업이 콤보박스의 배율에 따라 조정되도록 하려면, overlay 에도 동일한 배율을 적용하십시오:
Window {
property double scaleFactor: 2.0
Scale {
id: scale
xScale: scaleFactor
yScale: scaleFactor
}
Item {
id: scaledContent
transform: scale
ComboBox {
id: combobox
// ...
}
}
Overlay.overlay.transform: scale
}팝업 위치 지정
Qt Quick 의 항목과 마찬가지로, 팝업의 x 및 y 좌표는 부모에 상대적입니다. 즉, 예를 들어 Button 의 자식인 팝업을 열면 팝업이 해당 버튼에 상대적으로 배치됩니다.
다음 예제에서는 첨부된 Overlay.overlay 속성을 사용하여, 팝업을 여는 버튼의 위치와 관계없이 팝업을 창 중앙에 배치합니다:
Button {
onClicked: popup.open()
Popup {
id: popup
parent: Overlay.overlay
x: Math.round((parent.width - width) / 2)
y: Math.round((parent.height - height) / 2)
width: 100
height: 100
}
}부모 항목과 관계없이 팝업을 창 중앙에 배치하는 또 다른 방법은 ` anchors.centerIn`를 사용하는 것입니다:
ApplicationWindow {
id: window
// ...
Pane {
// ...
Popup {
anchors.centerIn: Overlay.overlay
}
}
}팝업이 둘러싼 창의 경계 내에 위치하도록 하려면 ` margins ` 속성을 0 이상의 값으로 설정할 수 있습니다.
오버레이 사용
popup windows 가 사용되지 않는 경우, Popup은 팝업이 씬 내의 다른 모든 요소보다 앞에 표시되도록 보장하기 위해 contentItem 의 시각적 부모를 창의 overlay 로 설정합니다. 이 팝업의 주요 역할은 이벤트를 가로채어 modal 팝업 아래에 있는 항목으로의 이벤트 전달을 차단하고, closePolicy 에 따라 팝업을 닫는 것입니다.
경우에 따라 virtual keyboard 와 같이 특정 항목을 팝업보다 앞에 배치하는 것이 유용할 수 있습니다. 현재는 해당 항목의 부모를 오버레이로 설정하고, z 값을 양수로 지정하여 해당 항목이 모든 팝업 항목보다 앞에 배치되도록 해야만 이 작업을 수행할 수 있습니다.
오버레이는 이러한 용도로 설계되지 않았으며, popupType 을 변경할 때 동작이 일관되지 않을 수 있으므로, 일반적으로 오버레이를 이러한 방식으로 사용하는 것은 권장되지 않습니다.
Popup {
id: popup
visible: true
anchors.centerIn: parent
margins: 10
closePolicy: Popup.CloseOnEscape
ColumnLayout {
TextField {
placeholderText: qsTr("Username")
}
TextField {
placeholderText: qsTr("Password")
echoMode: TextInput.Password
}
}
}
InputPanel {
parent: Overlay.overlay
width: parent.width
y: popup.y + popup.topMargin + (window.activeFocusItem?.y ?? 0) + (window.activeFocusItem?.height ?? 0)
z: 1
}팝업 전환
종료 전환이 완료된 후, 이러한 속성은 진입 전환이 시작되기 전의 값으로 재설정됩니다.
이를 통해 내장 스타일이 명시적으로 정의된 값을 잃지 않고 이러한 속성에 대해 애니메이션을 적용할 수 있습니다.
뒤로 가기/Escape 이벤트 처리
기본적으로 다음의 경우 팝업이 닫힙니다.
- activeFocus 가 설정되어 있고,
- closePolicy 가
Popup.CloseOnEscape인 경우, 그리고 - 사용자가 ` QKeySequence::Cancel `에 지정된 키 조합(일반적으로 Escape 키)을 누를 때
이러한 동작을 방지하려면 다음 중 하나를 수행하십시오:
- 팝업에 ` focus` 속성을 지정하지 마십시오.
- 팝업의 closePolicy 을
Popup.CloseOnEscape을 포함하지 않는 값으로 설정하십시오. - 팝업의 하위 항목에서 Keys' escapePressed 신호를 처리하여, 팝업보다 먼저 이벤트를 수신하도록 하십시오.
속성 전파
팝업은 객체나 시각적 부모가 아닌 부모 창을 통해 글꼴, 팔레트 및 첨부된 속성을 상속받습니다:
import QtQuick.Controls.Basic
ApplicationWindow {
width: 500
height: 500
visible: true
font.pixelSize: 20
palette.windowText: "steelblue"
// This will have a pixelSize of 20 and be "steelblue" in color.
header: Label {
text: "ApplicationWindow Label"
leftPadding: 20
topPadding: 20
}
Pane {
width: 400
height: 400
anchors.centerIn: parent
palette.window: "#edf3f8"
palette.windowText: "tomato"
// This will have a pixelSize of 20 and be "tomato" in color.
Label {
text: "Pane Label"
}
Popup {
width: 300
height: 300
anchors.centerIn: parent
font.pixelSize: 10
visible: true
// This will have a pixelSize of 10 and "steelblue" in color.
Label {
text: "Popup Label"
}
Popup {
width: 200
height: 200
anchors.centerIn: parent
visible: true
// This will have a pixelSize of 20 and be "steelblue" in color.
Label {
text: "Child Popup Label"
}
}
}
}
}
또한, 팝업은 자식 팝업으로 속성을 전파하지 않습니다. 이 동작은 Qt Widgets 을 모델로 한 것으로, 여기서 Qt::Popup 위젯은 최상위 창입니다. 최상위 창은 자식 창으로 속성을 전파하지 않습니다.
ComboBox 과 같은 특정 파생 유형은 일반적으로 팝업이 컨트롤의 필수적인 부분으로 간주되도록 구현되며, 따라서 부착 속성 등을 상속받을 수 있습니다. 예를 들어, Material 스타일의 ComboBox 에서 테마 및 기타 부착 속성은 Popup이 ComboBox 자체로부터 명시적으로 상속받습니다:
popup: T.Popup {
// ...
Material.theme: control.Material.theme
Material.accent: control.Material.accent
Material.primary: control.Material.primary
}따라서 자식 팝업이 부모 팝업과 동일한 속성 값을 갖도록 하려면 해당 속성을 명시적으로 설정해야 합니다:
닫힌 팝업의 동작 개선
팝업이 닫히면 해당 팝업과 연결된 창이 없으며, 자식 항목들도 마찬가지입니다. 즉, 팝업이 표시될 때까지 어떤 자식 항목도 polished 상태가 되지 않습니다. 이러한 이유로, 예를 들어 닫힌 Popup 내의 ListView 가 count 속성을 업데이트할 것이라고 기대할 수 없습니다:
import QtQuick
import QtQuick.Controls
ApplicationWindow {
width: 640
height: 480
visible: true
SomeModel {
id: someModel
}
Button {
text: view.count
onClicked: popup.open()
}
Popup {
id: popup
width: 400
height: 400
contentItem: ListView {
id: view
model: someModel
delegate: Label {
text: display
required property string display
}
}
}
}위의 예시에서, 팝업이 닫혀 있는 동안 component completion 이후에 someModel 에 행이 추가되거나 제거되어도 Button의 텍스트는 업데이트되지 않습니다.
대신, SomeModel 에 count 속성을 추가하여 rowsInserted, rowsRemoved, modelReset 신호가 발생될 때마다 이 속성이 업데이트되도록 할 수 있습니다. 그러면 Button 는 이 속성을 text 에 바인딩할 수 있습니다.
‘팝업 컨트롤(Popup Controls)’, ‘팝업 사용자 정의(Customizing Popup)’, ‘속성 문서를 확인하는 방법( ApplicationWindow)’항목도 참조하십시오 .
속성 설명서
activeFocus : bool [read-only]
이 속성은 팝업에 포커스가 설정되어 있는지 여부를 나타냅니다.
관련 항목: focus 및 Qt Quick 의 '키보드 포커스' 항목.
anchors.centerIn : Item [since QtQuick.Controls 2.5 (Qt 5.12)]
앵커는 다른 항목과의 관계를 지정하여 항목의 위치를 설정하는 방법을 제공합니다.
일반적인 사용 사례로는 팝업을 상위 요소 내에서 중앙에 배치하는 것이 있습니다. 이를 구현하는 한 가지 방법은 ` x ` 및 ` y ` 속성을 사용하는 것입니다. 앵커를 사용하면 더 편리한 방법을 사용할 수 있습니다:
Overlay 를 사용하여 팝업을 창 중앙에 배치하는 것도 가능합니다:
ApplicationWindow {
id: window
// ...
Pane {
// ...
Popup {
anchors.centerIn: Overlay.overlay
}
}
}이를 통해 어떤 컴포넌트에서든 창 내에서 팝업을 중앙에 배치하기가 쉬워집니다.
참고: 팝업은 직계 부모나 창 오버레이 내에서만 중앙 정렬할 수 있으며, 다른 항목에서 중앙 정렬을 시도하면 경고가 표시됩니다.
이 속성은 QtQuick.Controls 2.5(Qt 5.12)에서 도입되었습니다.
Popup Positioning, anchors 및 Using Qt Quick Controls types in property declarations.
availableHeight : real [read-only]
이 속성은 팝업의 height 에서 수직 패딩을 차감한 후, contentItem 가 사용할 수 있는 높이를 나타냅니다.
padding, topPadding 및 bottomPadding도 참조하십시오 .
availableWidth : real [read-only]
이 속성은 팝업의 width 에서 가로 패딩을 뺀 후, contentItem 에 할당되는 가용 너비를 나타냅니다.
padding, leftPadding 및 rightPadding도 참조하십시오 .
background : Item
이 속성은 배경 항목을 포함합니다.
참고: 배경 항목에 명시적인 크기가 지정되지 않은경우 , 자동으로 팝업의 크기를 따릅니다. 대부분의 경우 배경 항목의 너비나 높이를 별도로 지정할 필요가 없습니다.
참고: 대부분의 팝업은 배경 항목의 암시적 크기를 사용하여 팝업 자체의 암시적 크기를 계산합니다. 배경 항목을 사용자 정의 항목으로 대체하는 경우, 해당 항목에 적절한 암시적 크기를 지정하는 것도 고려해야 합니다( Image 와 같이 자체 암시적 크기를 가진 항목은 예외입니다).
‘팝업 사용자 정의’항목도 참조하십시오 .
bottomInset : real [since QtQuick.Controls 2.5 (Qt 5.12)]
이 속성은 배경의 하단 여백을 지정합니다.
이 속성은 QtQuick.Controls 2.5(Qt 5.12)에서 도입되었습니다.
Popup Layout 및 topInset도 참조하십시오 .
bottomMargin : real
이 속성은 팝업의 하단 가장자리와 해당 창의 하단 가장자리 사이의 거리를 나타냅니다.
하단 여백이 음수인 팝업은 둘러싼 창의 하단 가장자리 안쪽으로 밀려 들어가지 않습니다. 기본값은 -1 입니다.
margins, topMargin 및 Popup Layout도 참조하십시오 .
bottomPadding : real
이 속성은 하단 패딩을 지정합니다. 명시적으로 설정하지 않는 한, 값은 ` verticalPadding`와 같습니다.
패딩 속성은 content item 의 기하학적 구조를 제어하는 데 사용됩니다.
Popup은 Control 과 동일한 패딩 방식을 사용합니다. 패딩 시스템에 대한 시각적 설명은 문서의 “ Control Layout ” 섹션을 참조하십시오.
padding, topPadding, verticalPadding 및 availableHeight도 참조하십시오 .
clip : bool
이 속성은 클리핑이 활성화되어 있는지 여부와 관계없이 적용됩니다. 기본값은 ‘ false ’입니다. 클리핑은 팝업이 별도의 창에 표시되지 않을 때만 작동합니다.
closePolicy : enumeration
이 속성은 팝업이 닫히는 조건을 결정합니다. 플래그를 조합하여 팝업을 닫는 여러 가지 방법을 설정할 수 있습니다.
사용 가능한 값은 다음과 같습니다:
| 상수 | 설명 |
|---|---|
Popup.NoAutoClose | 수동으로 닫으라는 지시가 있을 때만 팝업이 닫힙니다. |
Popup.CloseOnPressOutside | 팝업 외부의 영역에서 마우스 버튼을 누르면 팝업이 닫힙니다. |
Popup.CloseOnPressOutsideParent | 부모 요소 바깥쪽에서 마우스를 클릭하면 팝업이 닫힙니다. |
Popup.CloseOnReleaseOutside | 팝업 외부에서 마우스 버튼을 놓으면 팝업이 닫힙니다. |
Popup.CloseOnReleaseOutsideParent | 부모 요소 바깥쪽에서 마우스 버튼을 놓으면 팝업이 닫힙니다. |
Popup.CloseOnEscape | 팝업에 포커스가 활성화된 상태에서 Esc 키를 누르면 팝업이 닫힙니다. |
Popup.CloseMultiple | 중첩된 팝업이 여러 개인 경우, 기본적으로 외부에서 클릭할 때마다 최상위 팝업만 닫힙니다. 닫히는 팝업에 이 플래그가 설정되어 있으면 스택에서 다음 팝업도 확인됩니다. 클릭 위치가 해당 팝업 외부인 경우에도 이 팝업도 함께 닫힙니다. 이 연쇄 반응은 모든 팝업이 닫히거나, 클릭 위치가 포함된 경계를 가진 팝업에 도달하거나, ` CloseMultiple `가 설정되지 않은 팝업이 닫힐 때까지 스택을 따라 아래로 계속됩니다. 이 플래그는 최소한 하나의 ` CloseOnPress* ` 또는 ` CloseOnRelease* ` 플래그와 함께 사용해야 합니다. |
기본값은 Popup.CloseOnEscape | Popup.CloseOnPressOutside 입니다.
참고: Popup.CloseOnReleaseOutside 및 Popup.CloseOnReleaseOutsideParent 정책은 modal 팝업에서만 작동한다는 알려진 제한 사항이있습니다 .
contentChildren : list<Item>
이 속성은 콘텐츠 자식 요소들의 목록을 포함합니다.
이 목록에는 QML에서 팝업의 자식으로 선언된 모든 항목이 포함됩니다.
참고: contentData 과달리 , contentChildren 은 비시각적 QML 객체를 포함하지 않습니다.
Item::children 및 contentData도 참조하십시오 .
contentData : list<QtObject> [default]
이 속성은 콘텐츠 데이터 목록을 포함합니다.
이 목록에는 QML에서 팝업의 자식 객체로 선언된 모든 객체가 포함됩니다.
참고: contentChildren과는 달리 , contentData 은 비시각적 QML 객체도 포함합니다.
Item::data 및 contentChildren도 참조하십시오 .
contentHeight : real
이 속성은 콘텐츠의 높이를 나타냅니다. 이 속성은 팝업의 전체 암시적 높이를 계산하는 데 사용됩니다.
자세한 내용은 Popup Sizing 을 참조하십시오.
contentWidth도 참조하십시오 .
contentItem : Item
이 속성은 팝업의 콘텐츠 항목을 포함합니다.
콘텐츠 항목은 팝업의 시각적 구현체입니다. 팝업이 표시되면 콘텐츠 항목은 자동으로 팝업의 overlay item 로 부모 요소가 변경됩니다.
참고: 콘텐츠항목의 크 기는 팝업의 padding 에 맞도록 자동으로 조정됩니다.
참고: 대부분의 팝업은 콘텐츠 항목의 암시적 크기를 사용하여 팝업 자체의 암시적 크기를 계산합니다. 콘텐츠 항목을 사용자 정의 항목으로 대체하는 경우, 해당 항목에 적절한 암시적 크기를 지정하는 것도 고려해야 합니다( Text 와 같이 자체 암시적 크기를 가진 항목은 예외).
‘팝업 사용자 정의’항목도 참조하십시오 .
contentWidth : real
이 속성은 콘텐츠의 너비를 저장합니다. 팝업의 총 암시적 너비를 계산하는 데 사용됩니다.
자세한 내용은 Popup Sizing 을 참조하십시오.
contentHeight도 참조하십시오 .
dim : bool
이 속성은 팝업이 배경을 어둡게 하는지 여부를 결정합니다.
명시적으로 설정하지 않는 한, 이 속성은 ` modal`의 값을 따릅니다. 기본값으로 되돌리려면 이 속성을 ` undefined`로 설정하십시오.
modal 및 Overlay.modeless도 참조하십시오 .
enabled : bool [since QtQuick.Controls 2.3 (Qt 5.10)]
이 속성은 팝업이 활성화되어 있는지 여부를 나타냅니다. 기본값은 ` true`입니다.
이 속성은 QtQuick.Controls 2.3(Qt 5.10)에서 도입되었습니다.
visible 및 Item::enabled도 참조하십시오 .
enter : Transition
이 속성은 팝업이 열려 화면으로 들어올 때 팝업 항목에 적용되는 전환 효과를 지정합니다.
다음 예제는 팝업이 화면에 들어올 때 투명도를 애니메이션으로 표현합니다:
Popup {
enter: Transition {
NumberAnimation { property: "opacity"; from: 0.0; to: 1.0 }
}
}exit도 참조하십시오 .
exit : Transition
이 속성은 팝업이 닫혀 화면 밖으로 나갔을 때 팝업 항목에 적용되는 전환 효과를 지정합니다.
다음 예제는 팝업이 화면 밖으로 나가는 동안 팝업의 불투명도를 애니메이션으로 처리합니다:
Popup {
exit: Transition {
NumberAnimation { property: "opacity"; from: 1.0; to: 0.0 }
}
}enter도 참조하십시오 .
focus : bool
이 속성은 팝업이 포커스를 받을지 여부를 지정합니다.
팝업이 실제로 포커스를 받게 되면, ` activeFocus `는 ` true`가 됩니다. 자세한 내용은 Qt Quick 의 '키보드 포커스' 섹션을 참조하십시오.
기본값은 ` false`입니다.
activeFocus도 참조하십시오 .
font : font
이 속성은 팝업에 현재 설정된 글꼴을 저장합니다.
팝업은 명시적인 글꼴 속성을 자식 요소로 전파합니다. 팝업의 글꼴에 대한 특정 속성을 변경하면, 해당 속성이 팝업의 모든 자식 요소로 전파되어 해당 속성에 대한 시스템 기본값을 재정의합니다.
Popup {
font.family: "Courier"
Column {
Label {
text: qsTr("This will use Courier...")
}
Switch {
text: qsTr("... and so will this")
}
}
}Control::font 및 ApplicationWindow::font도 참조하십시오 .
height : real
이 속성은 팝업의 높이를 지정합니다.
horizontalPadding : real [since QtQuick.Controls 2.5 (Qt 5.12)]
이 속성은 수평 패딩을 지정합니다. 명시적으로 설정하지 않는 한, 값은 ‘ padding ’와 같습니다.
패딩 속성은 content item 의 기하학적 구조를 제어하는 데 사용됩니다.
Popup은 Control 과 동일한 패딩 방식을 사용합니다. 패딩 시스템에 대한 시각적 설명은 문서의 “ Control Layout ” 섹션을 참조하십시오.
이 속성은 QtQuick.Controls 2.5(Qt 5.12)에서 도입되었습니다.
padding, leftPadding, rightPadding, verticalPadding도 참조하십시오 .
implicitBackgroundHeight : real [read-only, since QtQuick.Controls 2.5 (Qt 5.12)]
이 속성은 암시적 배경 높이를 저장합니다.
값은 ` background ? background.implicitHeight : 0`와 같습니다.
이 속성은 QtQuick.Controls 2.5(Qt 5.12)에서 도입되었습니다.
implicitBackgroundWidth 및 implicitContentHeight도 참조하십시오 .
implicitBackgroundWidth : real [read-only, since QtQuick.Controls 2.5 (Qt 5.12)]
이 속성은 암시적 배경 너비를 지정합니다.
값은 ` background ? background.implicitWidth : 0`과 같습니다.
이 속성은 QtQuick.Controls 2.5(Qt 5.12)에서 도입되었습니다.
implicitBackgroundHeight 및 implicitContentWidth도 참조하십시오 .
implicitContentHeight : real [read-only, since QtQuick.Controls 2.5 (Qt 5.12)]
이 속성은 암시적 콘텐츠 높이를 저장합니다.
값은 콘텐츠 자식 요소를 기반으로 계산됩니다.
이 속성은 QtQuick.Controls 2.5(Qt 5.12)에서 도입되었습니다.
implicitContentWidth 및 implicitBackgroundHeight도 참조하십시오 .
implicitContentWidth : real [read-only, since QtQuick.Controls 2.5 (Qt 5.12)]
이 속성은 암시적 콘텐츠 너비를 저장합니다.
값은 콘텐츠 자식 요소를 기반으로 계산됩니다.
이 속성은 QtQuick.Controls 2.5(Qt 5.12)에서 도입되었습니다.
implicitContentHeight 및 implicitBackgroundWidth도 참조하십시오 .
implicitHeight : real
이 속성은 팝업의 암시적 높이를 지정합니다.
implicitWidth : real
이 속성은 팝업의 암시적 너비를 지정합니다.
leftInset : real [since QtQuick.Controls 2.5 (Qt 5.12)]
이 속성은 배경의 왼쪽 여백을 지정합니다.
이 속성은 QtQuick.Controls 2.5(Qt 5.12)에서 도입되었습니다.
Popup Layout 및 rightInset도 참조하십시오 .
leftMargin : real
이 속성은 팝업의 왼쪽 가장자리와 해당 창의 왼쪽 가장자리 사이의 거리를 나타냅니다.
왼쪽 여백이 음수인 팝업은 둘러싼 창의 왼쪽 가장자리 안쪽으로 밀려 들어가지 않습니다. 기본값은 -1 입니다.
margins, rightMargin 및 Popup Layout도 참조하십시오 .
leftPadding : real
이 속성은 왼쪽 패딩을 지정합니다. 명시적으로 설정하지 않는 한, 값은 ` horizontalPadding`과 같습니다.
패딩 속성은 content item 의 기하학적 구조를 제어하는 데 사용됩니다.
Popup은 Control 과 동일한 패딩 방식을 사용합니다. 패딩 시스템에 대한 시각적 설명은 문서의 “ Control Layout ” 섹션을 참조하십시오.
padding, rightPadding, horizontalPadding 및 availableWidth도 참조하십시오 .
locale : Locale
이 속성은 팝업의 로케일을 지정합니다.
mirrored 및 LayoutMirroring도 참조하십시오 .
margins : real
이 속성은 팝업의 가장자리와 해당 창의 가장자리 사이의 거리를 지정합니다.
마진이 음수인 팝업은 둘러싼 창의 경계 안쪽으로 밀려 들어가지 않습니다. 기본값은 -1 입니다.
topMargin, leftMargin, rightMargin, bottomMargin 및 Popup Layout도 참조하십시오 .
mirrored : bool [read-only, since QtQuick.Controls 2.3 (Qt 5.10)]
이 속성은 팝업이 미러링되었는지 여부를 나타냅니다.
이 속성은 편의상 제공됩니다. 팝업의 시각적 레이아웃 방향이 오른쪽에서 왼쪽으로 설정된 경우, 즉 오른쪽에서 왼쪽으로 읽는 로케일을 사용하는 경우, 해당 팝업은 미러링된 것으로 간주됩니다.
이 속성은 QtQuick.Controls 2.3(Qt 5.10)에서 도입되었습니다.
locale 와 Right-to-left User Interfaces항목도 참조하십시오 .
modal : bool
이 속성은 팝업이 모달인지 여부를 나타냅니다.
모달 팝업은 대개 Overlay.modal 에 정의된 독특한 배경 어두워짐 효과를 가지며, 그 아래에 있는 항목으로의 클릭 또는 클릭 해제 이벤트가 전달되지 않도록 합니다. 예를 들어, 사용자가 실수로 팝업 바깥쪽을 클릭하면, 클릭 위치에 있는 해당 팝업 아래의 어떤 항목도 해당 이벤트를 수신하지 못합니다.
데스크톱 플랫폼에서는 모달 팝업이 Esc 키를 누를 때만 닫히는 것이 일반적입니다. 이러한 동작을 구현하려면 ` closePolicy `을 ` Popup.CloseOnEscape`으로 설정하십시오. 기본적으로 ` closePolicy `은 ` Popup.CloseOnEscape | Popup.CloseOnPressOutside`으로 설정되어 있어, 모달 팝업 외부에서 클릭하면 팝업이 닫힙니다.
기본값은 false 입니다.
dim도 참조하십시오 .
opacity : real
이 속성은 팝업의 불투명도를 지정합니다. 불투명도는 0.0 (완전히 투명)에서 1.0 (완전히 불투명) 사이의 숫자로 지정됩니다. 기본값은 1.0 입니다.
visible도 참조하십시오 .
opened : bool [since QtQuick.Controls 2.3 (Qt 5.10)]
이 속성은 팝업이 완전히 열려 있는지 여부를 나타냅니다. 팝업은 화면에 표시되어 있고, ‘ enter ’ 또는 ‘ exit ’ 전환이 실행 중이 아닐 때 열린 것으로 간주됩니다.
이 속성은 QtQuick.Controls 2.3(Qt 5.10)에서 도입되었습니다.
open(), close() 및 visible도 참조하십시오 .
padding : real
이 속성은 기본 패딩을 지정합니다.
패딩 속성은 content item 의 기하학적 구조를 제어하는 데 사용됩니다.
Popup은 Control 과 동일한 패딩 방식을 사용합니다. 패딩 시스템에 대한 시각적 설명은 문서의 “ Control Layout ” 섹션을 참조하십시오.
availableWidth, availableHeight, topPadding, leftPadding, rightPadding 및 bottomPadding도 참조하십시오 .
palette : palette [since QtQuick.Controls 2.3 (Qt 5.10)]
이 속성은 팝업에 현재 설정된 팔레트를 저장합니다.
팝업은 명시적인 팔레트 속성을 자식 요소로 전파합니다. 팝업의 팔레트에서 특정 속성을 변경하면, 해당 속성이 팝업의 모든 자식 요소로 전파되어 해당 속성에 대한 시스템 기본값을 재정의합니다.
Popup {
palette.text: "red"
Column {
Label {
text: qsTr("This will use red color...")
}
Switch {
text: qsTr("... and so will this")
}
}
}참조: Item::palette, Window::palette, ColorGroup, Palette
이 속성은 QtQuick.Controls 2.3(Qt 5.10)에서 도입되었습니다.
parent : Item
이 속성은 상위 항목을 포함합니다.
popupType : enumeration [since 6.8]
이 속성은 선호하는 팝업의 유형을 결정합니다.
사용 가능한 옵션:
| 상수 | 설명 |
|---|---|
Item | 팝업은 별도의 창을 사용하지 않고 same scene as the parent 에 내장됩니다. |
Window | 팝업은 separate window 내에서 표시됩니다. 플랫폼이 다중 창을 지원하지 않는 경우, 대신 Popup.Item 가 사용됩니다. |
Native | 팝업은 플랫폼의 네이티브 방식으로 표시됩니다. 플랫폼이 네이티브 팝업을 지원하지 않는 경우, 대신 Popup.Window 가 사용됩니다. |
팝업이 선호하는 유형을 사용할 수 있는지 여부는 플랫폼에 따라 다릅니다. Popup.Item 는 모든 플랫폼에서 지원되지만, Popup.Window 와 Popup.Native 는 일반적으로 데스크톱 플랫폼에서만 지원됩니다. 또한, 팝업이 native menubar 내부의 Menu 인 경우, 메뉴도 네이티브 방식으로 표시됩니다. 또한 메뉴가 다른 메뉴 내부의 하위 메뉴인 경우, 부모(또는 루트) 메뉴가 유형을 결정합니다.
기본값은 일반적으로 Popup.Item 이며, 앞서 언급한 몇 가지 예외가 있습니다. 다른 팝업 유형을 사용하는 것이 더 유리한 특정 스타일 및 플랫폼의 경우, 향후 Qt 버전에서 이 설정이 변경될 수 있습니다. 예를 들어, macOS의 모든 스타일에서 항상 네이티브 메뉴를 사용하려면 다음과 같이 설정할 수 있습니다:
Menu {
popupType: Qt.platform.os === "osx" ? Popup.Native : Popup.Window
}또한, 팝업을 사용자 정의하기로 한 경우(예를 들어 델리게이트 중 하나를 변경하는 경우 등), 팝업 유형을 Popup.Window 로 설정하는 것도 고려해야 합니다. 이렇게 하면 모든 플랫폼과 모든 스타일에서 변경 사항이 제대로 반영됩니다. 그렇지 않으면 네이티브 메뉴가 사용될 때 델리게이트가 렌더링에 사용되지 않습니다.
이 속성은 Qt 6.8에서 도입되었습니다.
Popup type도 참조하십시오 .
rightInset : real [since QtQuick.Controls 2.5 (Qt 5.12)]
이 속성은 배경의 오른쪽 여백을 지정합니다.
이 속성은 QtQuick.Controls 2.5(Qt 5.12)에서 도입되었습니다.
Popup Layout 및 leftInset도 참조하십시오 .
rightMargin : real
이 속성은 팝업의 오른쪽 가장자리와 해당 창의 오른쪽 가장자리 사이의 거리를 나타냅니다.
오른쪽 여백이 음수인 팝업은 둘러싼 창의 오른쪽 가장자리 안쪽으로 밀려 들어가지 않습니다. 기본값은 -1 입니다.
margins, leftMargin 및 Popup Layout도 참조하십시오 .
rightPadding : real
이 속성은 오른쪽 패딩을 지정합니다. 명시적으로 설정하지 않는 한, 값은 ` horizontalPadding`와 같습니다.
패딩 속성은 content item 의 기하학적 구조를 제어하는 데 사용됩니다.
Popup은 Control 과 동일한 방식으로 패딩을 처리합니다. 패딩 시스템에 대한 시각적 설명은 문서의 “ Control Layout ” 섹션을 참조하십시오.
padding, leftPadding, horizontalPadding 및 availableWidth도 참조하십시오 .
scale : real
이 속성은 팝업의 배율 계수를 지정합니다. 기본값은 1.0 입니다.
1.0 보다 작은 배율을 설정하면 팝업이 더 작은 크기로 렌더링되며, 1.0 보다 큰 배율을 설정하면 팝업이 더 큰 크기로 렌더링됩니다. 음수 배율은 지원되지 않습니다.
spacing : real [since QtQuick.Controls 2.1 (Qt 5.8)]
이 속성은 간격을 지정합니다.
간격은 여러 개의 구성 요소나 반복되는 구성 요소를 포함하는 팝업에 유용합니다. 예를 들어, 일부 스타일은 간격을 사용하여 Dialog 의 헤더, 콘텐츠, 푸터 간의 거리를 결정합니다. 간격은 Popup에 의해 강제 적용되지 않으므로, 각 스타일마다 이를 다르게 해석할 수 있으며, 일부 스타일은 이를 완전히 무시할 수도 있습니다.
이 속성은 QtQuick.Controls 2.1(Qt 5.8)에서 도입되었습니다.
topInset : real [since QtQuick.Controls 2.5 (Qt 5.12)]
이 속성은 배경의 상단 여백을 지정합니다.
이 속성은 QtQuick.Controls 2.5(Qt 5.12)에서 도입되었습니다.
Popup Layout 및 bottomInset도 참조하십시오 .
topMargin : real
이 속성은 팝업의 상단 가장자리와 해당 창의 상단 가장자리 사이의 거리를 나타냅니다.
상단 여백이 음수인 팝업은 둘러싼 창의 상단 가장자리 안쪽으로 밀려 들어가지 않습니다. 기본값은 -1 입니다.
margins, bottomMargin 및 Popup Layout도 참조하십시오 .
topPadding : real
이 속성은 상단 패딩을 지정합니다. 명시적으로 설정하지 않는 한, 값은 ` verticalPadding`과 같습니다.
패딩 속성은 content item 의 기하학적 구조를 제어하는 데 사용됩니다.
Popup은 Control 와 동일한 방식으로 패딩을 처리합니다. 패딩 시스템에 대한 시각적 설명은 문서의 “ Control Layout ” 섹션을 참조하십시오.
padding, bottomPadding, verticalPadding 및 availableHeight도 참조하십시오 .
transformOrigin : enumeration
이 속성은 진입 및 퇴장 전환 시 변환의 원점을 지정합니다.
아래 이미지에 표시된 것처럼 9가지 변환 원점을 사용할 수 있습니다. 기본 변환 원점은 Popup.Center 입니다.

enter, exit 및 Item::transformOrigin도 참조하십시오 .
verticalPadding : real [since QtQuick.Controls 2.5 (Qt 5.12)]
이 속성은 수직 패딩을 지정합니다. 명시적으로 설정하지 않는 한, 값은 ‘ padding ’와 같습니다.
패딩 속성은 content item 의 기하학적 구조를 제어하는 데 사용됩니다.
Popup은 Control 과 동일한 방식으로 패딩을 처리합니다. 패딩 시스템에 대한 시각적 설명은 문서의 “ Control Layout ” 섹션을 참조하십시오.
이 속성은 QtQuick.Controls 2.5(Qt 5.12)에서 도입되었습니다.
padding, topPadding, bottomPadding 및 horizontalPadding도 참조하십시오 .
visible : bool
이 속성은 팝업이 표시되는지 여부를 나타냅니다. 기본값은 false 입니다.
open(), close(), opened도 참조하십시오 .
width : real
이 속성은 팝업의 너비를 저장합니다.
x : real
이 속성은 팝업의 x 좌표를 저장합니다.
y : real
이 속성은 팝업의 y 좌표를 저장합니다.
z : real
이 속성은 팝업의 z-값을 저장합니다. z-값은 팝업의 중첩 순서를 결정합니다.
표시된 두 개의 팝업이 동일한 z-값을 가질 경우, 가장 최근에 열린 팝업이 맨 위에 표시됩니다.
팝업이 열릴 때 명시적으로 설정된 z-값이 없고, 이미 열려 있는 팝업의 자식인 경우, 해당 팝업은 부모 팝업 위에 중첩됩니다. 이를 통해 자식 팝업이 부모 팝업 아래에 가려지는 일이 없도록 보장합니다.
팝업에 자체 창이 있는 경우, z-값은 대신 창의 중첩 순서를 결정합니다.
기본 z-값은 0 입니다.
Signal 문서
void aboutToHide()
이 신호는 팝업이 곧 숨겨질 때 발생합니다.
참고: 해당 핸들러는 onAboutToHide 입니다.
closed()도 참조하십시오 .
void aboutToShow()
이 신호는 팝업이 표시되기 직전에 발생합니다.
참고: 해당 핸들러는 onAboutToShow 입니다.
opened()도 참조하십시오 .
void closed()
이 신호는 팝업이 닫힐 때 발생합니다.
참고: 해당 핸들러는 onClosed 입니다.
aboutToHide()도 참조하십시오 .
void opened()
이 신호는 팝업이 열릴 때 발생합니다.
참고: 해당 핸들러는 onOpened 입니다.
aboutToShow()도 참조하십시오 .
메서드 문서
void close()
팝업을 닫습니다.
visible도 참조하십시오 .
void forceActiveFocus(enumeration reason = Qt.OtherFocusReason)
지정된 reason 을 사용하여 팝업에 포커스를 강제 설정합니다.
이 메서드는 팝업에 포커스를 설정하고, 객체 계층 구조 내의 모든 상위 FocusScope 객체에도 focus 가 적용되도록 보장합니다.
activeFocus 및 Qt::FocusReason도 참조하십시오 .
void open()
팝업을 엽니다.
visible도 참조하십시오 .
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.