2010-12-14 4 views
1

임의의 하나 (일반적으로 QLineEdit)와 Pixmap을 표시하는 QLabel이라는 두 개의 위젯이 있습니다. QHBoxLayout을 사용하여 서로 옆에 배치됩니다. 이 레이아웃을 가진 위젯은 다시 다른 레이아웃에 배치됩니다.Qt에서 서로 동일한 크기의 옆에있는 위젯

필자가 원하는 것은 옆에있는 임의의 위젯만큼 높은 크기가되도록 pixmap의 레이블 크기가 자동으로 조정된다는 것입니다. 그러나 label의 sizePolicy를 Maximum으로 설정해도 픽스맵의 크기를 조정하고 다른 위젯과 일치하도록 축소하는 대신 원래의 pixmap 크기로 확장되는 것처럼 보입니다. 똑같이 큰 위젯을 두 개 가지고있는 대신 옆에있는 픽스맵보다 작은 임의의 위젯을 가지고 있습니다.

아이디어는 옆에있는 위젯의 크기와 일치하도록 pixmap 레이블의 크기를 얻는 방법은 무엇입니까?

답변

2

방법에 대해 :

int height = arbitraryWidget->height();    // get desired height. 

label->setSizeHint(QSize(label->width(), height); // set size hint to current width and desired height. 
label->setSizePolicy(QSizePolicy::Fixed);   // optional, but this ensures size is desired. 
+0

감사합니다. 임의의 위젯의 크기가 변경되면 자동으로 호출되도록이 위치를 어디에 둘 수 있습니까? 거기에 어떤 신호도없는 것 같습니다. – pafcu

+1

임의의 위젯의 resizeEvent() 메소드에서 신호를 내보내는 것이 작업을 수행 할 것이라고 생각합니다. 그런 다음 상위 창에서이 코드를 슬롯에 연결할 수 있습니다. – GatorGuy

관련 문제