2015-01-17 1 views
0

크롬과 같은 단일 메뉴 항목이있는 메뉴를 QML로 구현하고 싶습니다. 이 세 개의 수평 막대가있는이 단추가 있으며이를 클릭하면 단일 메뉴가 나타납니다. 파이어 폭스의 최신 버전도 같은 원칙을 따른다. 그것은 응용 프로그램의 GUI에서 너무 많은 수평 공간을 낭비하지 않고, 창 전체 너비를 차지하는 일반 메뉴를 줄입니다.qml : 크롬과 같은 메뉴를 구현하십시오.

QML로이 GUI를 정확하게 재현 할 수 없었습니다. 내가 본 것에서 QML ApplicationWindowMenuBar을 사용할 수 있지만 창 전체 너비가 필요합니다 ... 또는 메뉴를 트리거하는 토글 단추가있는 경우 독립형 Menu 및 해당 popup() 메서드를 사용하십시오. 그런 다음 커서 바로 아래에서 팝업으로 나타나며, 메뉴를 열 때 버튼 아래가 아니라 잘 보입니다. 컨텍스트 메뉴의 메커니즘을 악용합니다.

내 창에서 사용자 정의 위젯이 될 수있는 가짜 메뉴를 만들 수 있지만 응용 프로그램 창을 넘어 확장 할 수 없습니다. Chrome 에서처럼이 버튼을 윈도우의 맨 오른쪽에 배치 할 것이므로 이러한 동작이 거의 필요합니다.

순수 QML (C++이 아님)에서이 동작을 정확히 수행 할 수 있습니까?

답변

1

내가 한 마지막 옵션은 창에서 가짜 메뉴입니다. 캔버스를 사용하여 그림을 그려서 메뉴에서 메뉴 토글 버튼까지 조금 뾰족한 화살표로 만들 수 있습니다. 파이어 폭스도 마찬가지입니다.

내가 말했듯이 마이너스는 메뉴가 메뉴에서 빠져 나올 수없고, 모든 것이 매우 수동적입니다 (메뉴 항목의 마우스 오버 효과 ...). 그래서 나는 여전히 다른 솔루션에 관심이 있습니다.

EDIT : 잠시 후 확인해 보았습니다. 메뉴에 라벨뿐만 아니라 맞춤 위젯을 넣을 수 있습니다. 그래서 지금은 절대적인 접근이라고 생각합니다.

관련 문제