2013-10-25 1 views
1

QImage를 표시하는 데 QLabel이 있습니다. 디자인 모드에서 레이블 지오메트리는 속성 편집기에 나열된대로 (9,65), 1384 × 616입니다. 런타임에 레이블이 포함 된 MainWindow (즉, ui-> setupUi (this))가 시작될 때 레이블은 항상 시작 부분에 100x30 인 것처럼 보이므로 정말 작은 부분 만 표시하는 이미지가 표시됩니다.QLabel은 런타임 중에 디자이너의 크기와 일치하지 않습니다.

왜 고정 크기로 설정해야 100 × 30이 될까요?

미리 도움을 청하십시오.

답변

0

Qt는 실제로 정의 된 지오메트리를 사용하지 않고 정의 된 레이아웃만을 사용합니다.

레이아웃이없고 고정 크기가 아닌 모든 구성 요소는 기본 크기를 갖습니다.

일반적으로 구성 요소가 들어있는 컨테이너의 레이아웃을 설정 한 다음 구성 요소의 크기 정책을 설정해야합니다.

이미지의 경우 고정 된 크기의 힌트를 사용해야합니다.

+0

고정 된 크기로 어떤 기준을 사용 하시겠습니까? MainWindow의 자식 인 QLabel은 이미지가로드되기 전에 불확정 크기입니다. 특히 특정 플랫폼 및/또는 모니터에서. 다른 점에 관해서는 QLabel의 기본 크기는 100 x 30입니다. –

+0

나는 실제로 레이아웃과 고정 된 크기를 사용하지 않습니다. 그러나 기본 크기 (100 x 30)가 사용되고있는 것처럼 보입니다. –

+0

내가 틀렸던 것 같습니다. Qt4.8로 시도해 보았습니다. 레이블은 레이아웃없이 크기를 유지합니다. 레이아웃의 경우, QLabel은 항상 그것을 포함하고있는 위젯과 같은 크기를 가지고 있습니다 (그러나 적어도'setPixmap'으로 설정된 경우 이미지의 크기). – BeniBela

관련 문제