Inflearn brand logo image

인프런 커뮤니티 질문&답변

송인섭님의 프로필 이미지
송인섭

작성한 질문수

[Level 2] Qt를 이용한 Python 프로그래밍: QML편

TextInput 과 KeyNavigation 타입

parent.width 관련 질문.

작성

·

37

1

안녕하세요! 강의를 보던 중 질문이 있습니다!

Window {

width:400; height:112

}

라고 했을 때.

Rectangle에서도 parent.width를 써도 되지 않나요??

안쓰는 이유가 있는지 궁금해서 문의 드립니다!

답변 2

0

김대진님의 프로필 이미지
김대진
지식공유자

안녕하세요. 송인섭님,

좋은 질문입니다! QML에서 Window를 루트로 선언하고 그 안에 Rectangle을 선언할 때, parent.width를 사용해도 문법적으로는 문제 없습니다. 다만 실제로는 parent가 무엇을 가리키는지에 따라 달라지며, 다음과 같은 이유들 때문에 종종 parent.width 대신 Window 혹은 root의 id를 사용하는 경우가 많습니다.

Window {
    width: 400
    height: 112

    Rectangle {
        width: parent.width // 가능
        height: 100
    }
}

이 경우 Rectangle의 parent는 Window가 맞으므로 parent.width == 400이 됩니다. 정상 작동합니다.

하지만 Rectangle이 중첩된 구조일 경우, 예를 들어 중간에 Item이 끼어 있다면 parent는 더 이상 Window가 아닐 수 있습니다.

개발자가 보기 쉽게 하기 위해 다음과 같이 명확하게 하는 경우가 많습니다:

Window {
    id: root
    width: 400
    height: 112

    Rectangle {
        width: root.width
        height: 100
    }
}

 

혹시 더 궁금한게 있으면 언제든 질문해 주세요.

감사합니다. 김대진 드림.

 

송인섭님의 프로필 이미지
송인섭
질문자

감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. 송인섭님.

QML에서 RectangleWindow의 하위 요소일 때, Rectangle의 너비를 parent.width로 설정할 수 있습니다. 이는 Rectangle의 너비를 부모 요소인 Window의 너비와 동기화시키는 효과가 있습니다.

parent.width를 사용하지 않는 이유는 다양할 수 있습니다. 코드의 명확성, 가독성을 높이기 위해 직접적인 값을 사용하거나, 더 복잡한 레이아웃 로직을 구현하고자 하는 경우가 예가 될 수 있습니다. 또한, 이와 같은 설정은 기본적으로 단순한 레이아웃에서 자주 사용되며, 움직이는 요소나 변화하는 레이아웃에서는 적합하지 않을 수 있습니다.

관련된 내용에 대해 더 자세히 알고 싶으시면 아래 유사한 질문과 답변을 참조하실 수 있습니다:

해당 링크는 부모-자식 관계에서의 프로퍼티 사용 시 주의점과 이유를 설명하고 있으니 도움이 되실 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

송인섭님의 프로필 이미지
송인섭

작성한 질문수

질문하기