1
Qt는 Windows 및 Linux에서 임의의 윈도우 (즉, QWidget)의 기본 메뉴 막대와 상호 작용을 지원합니까?Qt 및 네이티브 메뉴
Qt는 메뉴를 부모 창에 배치 할 다른 하위 위젯으로 취급합니다. 즉, 메뉴 표시 줄을 사용하려면 창 클라이언트 영역에서 일부 공간을 예약해야합니다. 화면 상단에 메뉴가있는 맥에서는 의미가 없다. Windows에서는 시스템에 의해 구현 된 메뉴가 클라이언트 영역 밖에 있습니다. Linux에서 기본 모델이 무엇인지 모릅니다.
알아두면 좋은 정보. 그렇다면 어떻게 윈도우의 네이티브 메뉴 바를 할당하거나 액세스 할 수 있습니까? setMenuBar()는 QLayout 및 QMainWindow에만 정의되고 일반 QWidget에는 정의되지 않습니다. –
메뉴는 QLayout/QMainWindow에서만 가능합니다. 상황에 맞는 메뉴를 위젯으로 사용하려면 QWidget :: addAction을 통해 QAction을 추가하고 QWidget :: setContextMenuPolicy (Qt :: ActionsContextMenu)를 설정하십시오. – WolfgangA
어째서? 모든 QWidget은 최상위 창일 수 있습니다. 모든 최상위 창은 Windows에서 메뉴를 가질 수 있습니다. –