인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

다중언어GUI님의 프로필 이미지
다중언어GUI

작성한 질문수

[초급] QML 프로그래밍 2편

TableView와 ObjectModel

TableView에서 ImplicitWidth, ImplicitHeight와 일반 width, height의 차이가 궁금합니다.

해결된 질문

작성

·

65

1

안녕하세요.

TableView의 예제에서 ImplicitWidth와 ImplicitHeight 대신 width, height를 그냥 사용하였더니, Rectangle의 사이즈가 설정해준 값을 유지하지 못하고 그 보다 작은 정사각형 형태로 실행되어버리네요.

혹시 Component 내에서 Rectangle 사용 시에는 Implicit를 width와 height에 꼭 붙여서 사용해야 하고, 일반 width와 height는 사용하면 안되는 걸까요?

답변 1

0

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

QML에서 ImplicitWidth와 ImplicitHeight는 컴포넌트의 기본적인 크기(내부 크기)를 나타내고, width와 height는 실제로 렌더링할 때 적용되는 크기를 지정하는 속성입니다. 하지만 TableView나 다른 레이아웃 기반 컴포넌트 내에서 사용할 때는 두 속성이 다르게 작동할 수 있습니다.

 

<차이점 및 동작 원리>

ImplicitWidth와 ImplicitHeight의 특징

컴포넌트가 크기를 명시적으로 설정하지 않았을 때 QML이 해당 컴포넌트의 적절한 크기를 계산하기 위해 사용하는 기본 크기입니다.

레이아웃이나 컨테이너가 자식 요소의 크기를 관리할 때, ImplicitWidth와 ImplicitHeight는 자식 요소가 최소한으로 필요한 공간을 알려주는 역할을 합니다. 즉, 명시적인 크기를 지정하지 않아도 자동으로 적절한 크기를 설정해줍니다

 

width와 height의 특징

명시적으로 설정하는 크기입니다. 만약 width와 height를 설정했다면, 그 값이 컴포넌트의 실제 크기로 사용됩니다. 하지만 TableView나 GridView와 같은 레이아웃 컴포넌트에서는 width와 height가 부모 컴포넌트나 레이아웃의 규칙에 의해 무시될 수 있습니다. 이때 컴포넌트는 레이아웃이 관리하는 크기 제약을 따르므로, width와 height 대신 ImplicitWidth와 ImplicitHeight를 사용하는 것이 더 적절할 수 있습니다.

다중언어GUI님의 프로필 이미지
다중언어GUI

작성한 질문수

질문하기