2013-07-15 6 views
0

오버레이 상자에 내용을 표시해야하는 Qt 응용 프로그램을 만듭니다 (첨부 된 이미지 참조). 버튼을 눌렀을 때 상자가 아래쪽 도크 뒤에서 위로 밀고 단추를 움직여 아래로 슬라이드해야합니다. 나는 QWidget으로 시도했지만 내가 원하는 것을 성취 할 수 없었다. 또한 오버레이 상자에 요소를 나열하는 방법을 모르겠습니다. 요소는 동적이거나 변화합니다. 스택 순서Qt 오버레이 (드롭 다운) 상자

enter image description here

답변

0

위젯은 QObject 계층 구조 트리의 순서에 의해 정의된다. 첫 번째 요소는 아래쪽에 있으며 모든 다음 요소는 이전 요소 위에 있습니다. 아이들은 부모님의 손에 닿으 며, QML이없는 위젯 안에 있습니다.

슬라이딩 요소를 다른 모든 요소 위에 표시하려면 부모를 다른 모든 요소 위에 얹어 놓으십시오.

결국은 재생 목록 상단에있는 하단 제어 막대 위에 있으므로 모든 기능이 작동합니다.

지혜로운 일을 결정하고 QWidget 대신 QML을 사용하는 경우에도 마찬가지입니다. 애니메이션과 주 (州)는 훨씬 편합니다. 더 구체적인 디자인은 말할 것도 없습니다.

+0

전체 응용 프로그램은 C++로 작성되었습니다. 그 안에 QML을 내장하고 완전히 제어 할 수 있습니까? 신호와 슬롯에 대한 액세스 권한 같은가요? 목록을 동적으로 작성하는 방법에 대한 대략적인 아이디어를 줄 수 있다면 좋을 것입니다. 데이터 만 GUI 부분이 남았습니다. 감사! – Killswitch

+0

예, QML은 기존 Qt 인프라, 속성, 신호 및 슬롯을 사용하도록 구현되었으며 'QINVOKABLE'로 표시된 메소드는 QML에서 호출 할 수 있습니다. 코어 로직을 개별적으로 구현하고, 캡슐화하고, 필요한 모든 UI에 연결할 수있는 신호와 슬롯 만 제공 할 수 있습니다. 연결 외에도 QML에는 바인딩이 있으며 작업 속도가 훨씬 빠릅니다. – dtech