Qt 6로 포팅하기

Qt는 이전 버전인 Qt 5에서 Qt 6로 많은 변경 사항이 있습니다. Qt 6로 업그레이드하기 전에 Qt 5 애플리케이션이 Qt 5.15로 업데이트되었는지 확인하십시오. 최신 Qt 5 버전은 Qt 6으로 포팅할 때 변경 사항이 가장 적습니다. 그러나 Qt 5.15에서 사용되지 않거나 더 이상 사용되지 않는 것으로 표시된 API는 Qt 6에서 제거되었을 수 있습니다.

다음은 Qt 5 애플리케이션을 Qt 6으로 포팅할 때 확인해야 할 사항입니다.

Qt 5.15에서 더 이상 사용되지 않는 C++ API 사용 비활성화

Qt에서 더 이상 사용되지 않는 API의 사용은 일반적으로 컴파일러 경고의 형태로 표시됩니다. 빌드 시스템에서 QT_DISABLE_DEPRECATED_UP_TO C++ 매크로를 정의하여 오류를 발생시킬 수도 있습니다. 5.15 또는 이전 Qt 버전에서 더 이상 사용되지 않는 API를 사용하지 않으려면 매크로를 16진수로 인코딩된 '5.15.0'인 0x050F00 으로 정의합니다.

예를 들어, qmake 프로젝트 파일에서 매크로를 다음과 같이 정의합니다:

DEFINES += QT_DISABLE_DEPRECATED_UP_TO=0x050F00

CMake에서는 add_compile_definitions를 사용할 수 있습니다:

add_compile_definitions(QT_DISABLE_DEPRECATED_UP_TO=0x050F00)

모듈 변경 사항 확인

Qt 6 릴리스의 목표는 간소화된 프레임워크를 유지하는 것이며, 이는 Qt 6에서 일부 Qt 5 모듈이 제거됨을 의미합니다. 일부 경우 더 이상 사용되지 않는 모듈의 API를 다른 모듈에서 사용할 수 있습니다. 향후 Qt 6 릴리스에서는 새로운 모듈 또는 이전 모듈이 추가될 수 있습니다.

그래픽 회귀 테스트

QML 응용 프로그램에는 새로운 그래픽 백엔드가 있으며, 이를 통해 회귀를 테스트해야 합니다. OpenGL은 더 이상 대상 플랫폼에서 기본으로 보장되지 않으므로 그래픽 코드가 여전히 원하는 효과를 생성하는지 확인해야 합니다.

Qt 애플리케이션에서 OpenGL 호출은 여전히 사용할 수 있지만, OpenGL API는 Qt OpenGL 모듈로 이동됩니다. Qt Widgets 애플리케이션의 그래픽 백엔드는 Qt 5에서 변경되지 않았습니다.

High-DPI

Qt 6는 모든 플랫폼에서 고해상도 디스플레이를 지원하며, Qt Widgets 또는 Qt Quick 과 같은 상위 레벨 API를 사용할 때 디스플레이 해상도를 자동으로 고려합니다. 애플리케이션은 이미지 및 아이콘과 같은 고해상도 에셋만 제공하기만 하면 됩니다. 이 기능은 항상 활성화되어 있습니다.

Qt 6는 운영 체제 DPI 설정을 정확하게 추적하기 위해 기본 배율 반올림 정책을 Qt::HighDpiScaleFactorRoundingPolicy::Round 에서 Qt::HighDpiScaleFactorRoundingPolicy::PassThrough 로 변경합니다. 예를 들어 디스플레이가 175%로 구성된 Windows에서 Qt Widgets 을 사용하는 애플리케이션은 정수가 아닌 배율에서 그래픽 결함이 발생할 수 있습니다. 이 경우 반올림 정책을 Round 으로 설정하여 Qt 5 동작을 복원하세요.

자세한 내용은 높은 DPI를 참조하세요.

플랫폼 통합 API 사용

Qt 6에서는 대상 플랫폼의 기본 API와의 통합이 개선되었습니다. 플랫폼 통합 API를 사용하여 Qt에서 제공하지 않는 기본 동작을 구현할 수 있습니다. Qt 6의 경우 애플리케이션의 대상 플랫폼에 대한 업데이트가 있는지 확인하세요.

포팅 도구 사용

Qt 5에서 Qt 6으로 쉽게 포팅할 수 있는 클래지 기반 툴을 사용할 수 있습니다: 클래지 검사를 사용하여 C++ 애플리케이션을 Qt 6으로 포팅하기.

더 읽어보기

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.