문제

Qt에서 자식의 초기 창 위치를 지정하는 방법이 있습니까?

저는 Linux 및 Windows에서 실행되는 응용 프로그램이 있는데 Qt의 기본 동작처럼 창 관리자가 자식 창의 위치를 결정할 수 있습니다.

Windows에서 이것은 부모가있는 화면의 중앙에 있으며 합리적으로 보입니다.

리눅스에서 그놈 (메타 시티)에서는 항상 왼쪽 상단 모서리에있어 짜증이납니다.창 배치를 제어 할 수있는 메타 시티에 대한 창 관리자 기본 설정을 찾을 수 없으므로 해당 동작을 재정의하고 싶습니다.

도움이 되었습니까?

해결책

Qt 위젯 지오메트리

show () 전에 자식 창에서 move (x, y) 메서드를 호출합니다.x 및 y의 기본값은 0이므로 왼쪽 상단에 표시됩니다.
부모 창의 위치를 사용하여 자식의 상대적 위치를 계산할 수도 있습니다.

다른 팁

일반적으로 응용 프로그램에 매우 특별한 창 요구 사항이없는 한 창 위치를 강제하지 않는 것이 좋습니다.새 창을 어디에 둘 것인지 결정하는 것은 창 관리자의 일이며 대부분의 창은 잘 작동합니다.MetaCity가 좋은 위치를 선택하지 않으면 그게 문제입니다.

자신의 창 배치를 수행하면 열악한 창 관리자가 제공하는 것보다 더 나은 결과를 얻을 수 있지만 고급 창 관리자에서 사용할 수있는 지능형 창 배치 알고리즘을 놓칠 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top