2012-05-26 1 views
0

Windows에서 Qt 4.8을 사용하여 나만의 애니메이션 GUI를 만들려고합니다. 처음에는 위젯과 Qt 디자이너를 사용하여 가로/격자/기타 레이아웃을 배치하고 일반 위젯을 넣었습니다. 그러나 애니메이션 프레임 워크로 이동하게하는 것이 쉽지는 않습니다. 그래서 QGraphicsScene/QGraphicsView로 전환하여 애니메이션과 함께 사용하는 것이 훨씬 간단 해 보였습니다. 나는 끌려 갈 때 하위 메뉴 항목을 볼 수있게하는 주요 항목이있는 간단한 메뉴를 만들 것입니다. 단순한 것, 드롭 다운 메뉴에 관한 것. QGraphicsTextItem 항목을 배치했지만 하위 항목을 표시하기 위해 주 항목의 호버 이벤트를 연결하는 방법을 여전히 이해할 수 없습니다. 어떤 생각? 지금은 모든 영역을 차지하는 QGraphicsView 위젯이있는 QMainWindow가 있습니다.Qt와 마우스가 움직이는 애니메이션 GUI가 QGraphicsTextItem에 있습니다.

답변

1

QGraphicsTextItem의 고유 한 특수 하위 클래스를 만들고 hoverEnterEventhoverLeaveEvent 메소드를 다시 구현하여 마우스를 올리면 하위 메뉴를 표시 할 수 있습니다 (또는 원하는 동작 수행).

setAcceptHoverEvents 설명서를 읽어야 이러한 이벤트가 생성되는시기와 항목을 이해할 수 있습니다.

+0

필자는 문서를 읽고 마우스 오버 이벤트를 지원하는 자체 클래스를 작성했습니다. 그것은 작동하지만 난 여전히 어떻게 진짜 qt 메뉴와 함께 할 것이고 그들의 메인 메뉴 항목이 나타 났을 때 내가 몇 가지 하위 항목을 표시 할 수있는 메뉴 항목의 동작을 "링크"할 수 이해할 수 없다 – Stefano

+0

글쎄, 당신은 그냥 그 코드를 작성하십시오. 텍스트 아이템이 올려 져있는 동안 뭔가를 보여줄 필요가 있다면, 그 아이템이 가리키는'show()'를 입력하고 떠날 때'hide()'를 입력하십시오. 또는 호버에 항목을 만들고 퇴장시 삭제하십시오. 마법은 없습니다. 원하는 행동을 코드화해야합니다. – Mat

+0

정상적으로 할 수있는 것처럼 QAction을 연결하는 QToolButton을 사용하는 것이 더 좋을까요? – Stefano