문제

사용자가 두 번째 모니터를 사용하지 않을 때 QT 라이브러리를 사용하여 두 번째 모니터에 슬라이드 쇼를 표시합니다. 예를 들어 첫 번째 모니터에서 게임을하고 두 번째 모니터에서 슬라이드 쇼를 표시하는 사용자가 있습니다.

문제는 QT에서 새 창을 열면 이전 응용 프로그램에서 자동으로 초점을 훔친다는 것입니다. 이런 일이 발생하지 않도록하는 방법이 있습니까?

도움이 되었습니까?

해결책

그것을 찾는 데 시간이 걸렸지 만 나는 그것을 발견했습니다. setAttribute(Qt::WA_ShowWithoutActivating);

이것은 창을 활성화시키지 않도록합니다. 조차도 Qt::WindowStaysOnTopHint 깃발

다른 팁

플로팅 미리보기 상자/ 기타 위젯을 만들려면 아래에서만 사용하십시오.

thumbnail = new QLabel;
thumbnail->setAttribute(Qt::WA_ShowWithoutActivating);
thumbnail->setParent(0);
thumbnail->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint);

QT :: 도구는 작동하는 중요한 깃발입니다. 초점을 훔치는 것이 아니라는 것을 의미합니다.

위젯은 기본적으로 초점을 허용하지 않지만 아마도 일반 위젯을 만들지 않았을 것입니까? 어느 서브 클래스였습니까? qmainwindow 또는 다른 것?

창립 서브 클래스 기본값은 초점을 수락하기 위해 기본값이 가능하므로 qt :: nofocus로 qwidget :: nofocus로 qwidget :: setfocuspolicy를 명시 적으로 호출하십시오.

또한 창에서 qwidget :: actibatewindow ()를 호출하지 않도록하거나 언제든지 위젯을 호출하지 마십시오.

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