2011-12-31 2 views
1

나는 QMainWindow의 위젯에서 위젯에 위젯을 복잡한 레이아웃으로 사용합니다. 그들 중 하나에서 나는 구석에 앉아있다. 내가 성취하고자하는 것은 다음과 같습니다 : 이미지가 활성화되면 (예 : 클릭) 확대되어야하므로 다른 위젯이나 다른 위젯의 일부와 겹칠 수 있습니다. 문제는 여전히 레이아웃에 남아 있기를 원하지만 다른 모든 것은 원래 크기와 위치로 유지된다는 것입니다.다른 위젯을 포함 할 수 있도록 Qt 위젯을 확대하십시오.

비어 있지만 비슷한 크기의 위젯을 "자리 표시 자"로 생각하고 실제 크기를 조정할 수있는 위젯을 그 위에 띄우고 있습니다. 내 문제는, 메인 윈도우의 크기가 조정되거나 최대화되면 그 위치에 머물러 있다고 보장하지 않는다는 것입니다. 더 나은 방법이나 효율적인 방법이 있습니까?

+2

방법 : 사용자가 이미지를 클릭하면 대화 상자 (이미지 만 포함)가 이미지 위에 표시되고 확대 (일종의 애니메이션 적용)됩니다. 이것은 실제 위젯을 그대로두고 다른 위젯 인 QDialog가 부동을 수행하도록 자리 표시 자 아이디어의 반대입니다. –

+0

@ Eric Lancaster : 한번 시도해 보겠습니다. 창을 옮기면 문제가 발생하지만 응용 프로그램을 최대화하려고합니다 (화면 크기가 다른 문제가 있지만 QDialog를 적절히 배치 할 수 있습니다). – vsz

+0

흠, 그렇다면 플로팅 대화 상자에 부모로부터 사건을 옮기는 것을 듣기 때문에 나는 이것을 할 수있는 더 쉬운 방법이 있다고 생각하게됩니다. –

답변

0

는, 나는 다음을 수행 할 수있을 거라 생각 :

MainWindow를 더 레이아웃, 서로 상단에 두 QWidgets이 없습니다. 맨 아래에는 모든 레이아웃과 그 밖의 모든 것들이 포함되며, 상단에는 투명한 배경과 크기 조정이 가능한 위젯이있을 것이며, 아마도 많은 수의 스페이서로 지원 될 것입니다.

0

중복되는 위젯이 확대하려는 위젯과 동일한 레이아웃에 있고 그 위젯에 대한 정책이 허용하는 한 가지 방법은 다른 위젯에서는 단지 .setVisible(false)입니다. 표시되는 위젯은 사용 가능한 모든 영역을 포함하도록 크기가 조정되어야합니다! 나는 더 나은 솔루션을 찾을 수없는 경우

+0

문제는 충분히 유연하지 않다는 것입니다. 다른 위젯의 일부만 커버 할 수는 없습니다. – vsz

+0

오, 잠깐, 나는 모든 것을 다 다루고 싶다고 생각했다. –

+0

감사합니다. 질문을 덜 모호하게 편집했습니다. – vsz

관련 문제