2010-11-28 2 views
1

Qt는 Windows 및 Linux에서 임의의 윈도우 (즉, QWidget)의 기본 메뉴 막대와 상호 작용을 지원합니까?Qt 및 네이티브 메뉴

Qt는 메뉴를 부모 창에 배치 할 다른 하위 위젯으로 취급합니다. 즉, 메뉴 표시 줄을 사용하려면 창 클라이언트 영역에서 일부 공간을 예약해야합니다. 화면 상단에 메뉴가있는 맥에서는 의미가 없다. Windows에서는 시스템에 의해 구현 된 메뉴가 클라이언트 영역 밖에 있습니다. Linux에서 기본 모델이 무엇인지 모릅니다.

답변

1

Qt는 Mac 및 Windows에서 기본 메뉴를 지원합니다. Qt Designer의 양식을 보면 Mac의 Qt 메뉴가 표준이 아니지만 그렇지 않은 것 같습니다. Qt는 지원되는 플랫폼 간의 차이점을 처리하기 위해 많은 노력을 기울였습니다.

+0

알아두면 좋은 정보. 그렇다면 어떻게 윈도우의 네이티브 메뉴 바를 할당하거나 액세스 할 수 있습니까? setMenuBar()는 QLayout 및 QMainWindow에만 정의되고 일반 QWidget에는 정의되지 않습니다. –

+0

메뉴는 QLayout/QMainWindow에서만 가능합니다. 상황에 맞는 메뉴를 위젯으로 사용하려면 QWidget :: addAction을 통해 QAction을 추가하고 QWidget :: setContextMenuPolicy (Qt :: ActionsContextMenu)를 설정하십시오. – WolfgangA

+0

어째서? 모든 QWidget은 최상위 창일 수 있습니다. 모든 최상위 창은 Windows에서 메뉴를 가질 수 있습니다. –