2010-08-16 2 views
2

Qt (Windows XP 32 비트에서는 버전 4.6 및 Qt Creator 2.0.0에서 컴파일)로 작업하고 QWizard를 작동 시키려고합니다.QWizardPages는 자체 최소 크기를 유지합니다.

첫 번째 문제는 :

나는 지금까지 내 QWizardQWizardPages 있습니다. 각 페이지에는 레이아웃으로 적용된 QVBoxLayout이 있습니다. 첫 번째 페이지에는 아주 작은 내용 (3 줄 QLabel)이 있지만 QLabel과 "< Back", "Next>"및 "Cancel"버튼 창 사이에 약간의 공백이 있습니다. 나는 각 페이지가 그 안에있는 내용에 기초하여 최소한의 공백을 가지길 원한다. 이전에는 QVBoxLayout을 부모가없는 QWidget (자신의 창)에 넣었을 때 창은 항상 QVBoxLayout을 수정하기에 충분히 작았습니다. 이제 여분의 공백이 있습니다. QWizardPages가 가능한 작아 지도록 끄거나 켜야하는 몇 가지 옵션이 있습니까?

둘째문제 (주로 가능성이 첫번째 관련) : 또한

, 내 두 번째 페이지는 내가 두 번째 페이지에 도착하고, 다시 와서 그렇게 할 때, 내 첫 페이지보다 훨씬 크다 첫 번째 페이지는 두 번째 페이지를 방문한 후에 만 ​​첫 번째 페이지의 크기가 두 번째 페이지와 동일하게 유지됩니다. 이거 버그 야? 나는 QWizard 생성자에

move(50, 50); 

을 수행 할 때

내가 뭐하는 거지 유일한 형상 설정

입니다. 아니 크기를 조정 ... 아무것도 명시 적으로. 나는 레이아웃이 그들의 마술을하도록 노력하고있다.

도움을 주셔서 감사합니다.

답변

1

이 문제를 해결하려면, 나는 QWizard의 하위 클래스를 생성하고이 같은 개인 슬롯 생성 :

void ChildClass::fitContents(int id) 
{ 
    adjustSize(); // this automagically resizes the window to fit the contents 
} 

을 그리고 그것은 페이지가 변경 될 때마다 호출과 같이했다 만든 :

connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(fitContents(int))); 
관련 문제