이 페이지에서

Qt 6으로의 이식

이전 버전인 Qt 5에서 Qt 6으로 넘어오면서 Qt에 많은 변경 사항이 있습니다. 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++ 매크로를 정의하여 해당 사용을 오류로 처리할 수도 있습니다. Qt 5.15 또는 그 이전 버전에서 사용 중단된 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은 모든 플랫폼에서 고해상도(High-DPI) 디스플레이를 지원하며, Qt Widgets 이나 Qt Quick 과 같은 상위 레벨 API를 사용할 때 디스플레이 해상도를 자동으로 반영합니다. 애플리케이션은 이미지와 아이콘과 같은 고해상도 자산만 제공하면 됩니다. 이 기능은 항상 활성화되어 있습니다.

Qt 6은 운영 체제의 DPI 설정을 정확하게 반영하기 위해 기본 스케일 계수 반올림 정책을 ` Qt::HighDpiScaleFactorRoundingPolicy::Round `에서 ` Qt::HighDpiScaleFactorRoundingPolicy::PassThrough `로 변경했습니다. ` Qt Widgets `를 사용하는 애플리케이션은 비정수 스케일 계수에서 그래픽 오류가 발생할 수 있습니다(예: 디스플레이가 175%로 설정된 Windows 환경). 이 경우 반올림 정책을 ` Round `로 설정하여 Qt 5의 동작을 복원할 수 있습니다.

자세한 내용은 ‘고해상도( High DPI )’를 참조하십시오.

플랫폼 통합 API 사용

Qt 6에서는 대상 플랫폼의 네이티브 API와의 통합이 더욱 향상되었습니다. 플랫폼 통합 API를 사용하여 Qt에서 제공하지 않는 네이티브 동작을 구현할 수 있습니다. Qt 6의 경우, 애플리케이션의 대상 플랫폼에 대한 업데이트가 있는지 확인하십시오.

이식 도구 사용

Qt 5에서 Qt 6으로의 이식을 용이하게 해주는 Clazy 기반 도구가 제공됩니다: Clazy 검사를 사용하여 C++ 애플리케이션을 Qt 6으로 이식하기.

추가 자료

QTextStream 변경 사항

Qt 6에서 QTextStream::setCodec() 메서드가 제거되었습니다. 대신 QTextStream::setEncoding()을 사용하십시오.

© 2026 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.