각 모니터에 대해 QGraphicsScene을 사용하는 QGraphicsScene을 사용하여 Qt 4.8에서 Linux 용 응용 프로그램 (RHEL, Gnome, Compiz)을 개발 중입니다. 각 QGraphicsView에는 Qt :: X11Bypasswindowmanager 힌트 힌트가 있습니다. 키보드 포커스를 복원하기 위해 모든 이벤트에 대해 QWraphicsViews 중 하나에서 activateWindow()를 호출하는 이벤트 핸들러가 있습니다.이 이벤트 핸들러는 과도하고 비효율적 인 것으로 알고 있습니다. 응용 프로그램은 사용자가 자주 숨기거나 표시하도록 요청할 수있는 응용 프로그램입니다. 이벤트 처리기에서 활성화되는 특정 QGraphicsView에서 show()를 호출하면 X11 오류 이벤트가 발생합니다. 특히 오류에는 BadMatch 오류에 해당하는 오류 코드 8과 XSetInputFocus()에 해당하는 42의 주요 작업 코드가 있습니다.QGraphicsScene 및 Qt :: X11BypasswindowmanagerHint를 사용하면 X11에서 BadMatch 오류가 발생합니다.
먼저이 오류는 응용 프로그램이 실제로 작동하기 때문에 사용자 지정 x11 이벤트 처리기를 통해 간단히 무시할 수 있습니까? 둘째,이 특정 창 힌트를 QGraphicsView와 함께 사용할 때 activateWindow를 호출하는 더 좋은 방법이 있습니까? 그리고 그렇지 않다면 적어도이 오류를 피할 수있는 방법이 있습니까?