Qt 및 터치스크린이 포함된 듀얼 모니터

Qt 및 터치스크린이 포함된 듀얼 모니터

Qt 기반 프로그램(eglfs 플랫폼 사용)과 2개의 모니터(하나는 LVDS, 다른 하나는 HDMI를 통해 연결)가 있습니다. LVDS 모니터는 터치스크린입니다. HDMI 화면은 LVDS 화면 오른쪽에 있으며 둘 다 1024x768의 해상도를 갖습니다. LVDS의 (X;Y) 위치를 터치하면 시스템은 내가 (X*2;Y)를 터치한 것으로 간주합니다. 나는 다음 명령을 시도했습니다.

xinput set-prop "eGalax Inc. eGalaxTouch EXC3000-5207-45.00.00" --type=float "Coordinate Transformation Matrix" 0.5 0 0 0 1 0 0 0 1

이 방법은 소프트웨어가 Qt(예: xterm window)를 기반으로 하지 않지만 내 Qt 소프트웨어가 여전히 잘못된 경우에 작동합니다. 문제는 무엇이며 어떻게 해결할 수 있습니까?

답변1

eglfs를 사용하는 경우 환경 변수에 전달된 JSON 파일을 통해 일부 화면 위치/위치를 구성해야 할 수도 있습니다 QT_QPA_EGLFS_KMS_CONFIG.

여기에서 eglfs에 대한 문서를 확인하세요.https://doc.qt.io/qt-5/embedded-linux.html

화면 위치와 터치 위치에 대해서는 Display Output및 를 읽어보세요 Touch input in systems with multiple screens on KMS/DRM.

반면, 애플리케이션에 대해 항상 외부 변수를 정의하고 싶지 않은 경우 QGuiApplication app(argc, argv);호출하기 전에 C/C++ 기본 프로그램에서 다음을 수행할 수 있습니다.


    int main(int argc, char* argv[])
    {
        qputenv("QT_QPA_EGLFS_KMS_CONFIG", <path to your qpa json file>);
        
        QGuiApplication app(argc, argv);
        
        ...

도움이 되었기를 바랍니다

관련 정보