문제

QT에서 위젯을 오버레이하려면 어떻게해야합니까?

위젯을 만들어 층을 제외하고는 다른 위젯의 지오메트리가 변경 될 때 크기와 위치를 조정하고 싶습니다.

스크린 샷의 버튼과 같은 것 :

alt text

도움이 되었습니까?

해결책

qpushbutton (또는 qwidget)을 만들고 부모 QWIDGET을 표시 한 다음 표시하면됩니다.

부모 레이아웃에 추가하지 마십시오. 그렇지 않으면 원하는대로 움직일 수 없습니다.

부모를 다른 부모를 표시하는 것을 잊지 마십시오. 독립 QWIDGET으로 표시됩니다.

이러한 조건에서 QPushButton은 QWIDGET의 자녀로 간주되지만 부모의 레이아웃 구성원은 아닙니다. 따라서 "플로팅"아이가 될 것이며 부모의 QWIDGET을 크기를 조정할 때 행동을 관리해야합니다.

모든 오버레이 버튼에 대한 통합 동작을 원한다면 서브 클래스 QLayout 그리고 회원 바하비 우어를 재정의합니다.

다른 팁

그들이 레이아웃이없는 위젯의 자녀가 있다면, 당신은 당신이 원하는대로 움직일 수 있어야한다고 생각합니다.

내가 작업중 인 프로젝트를 위해 이와 같은 위젯이 필요했기 때문에 Patrice 조언을 받아이 코드를 썼습니다 (Python). PYQT4 위젯 오버레이

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top