이 페이지에서

Qt 6.4의 새로운 기능

Qt 6.4의 신규 및 복원된 모듈

Qt 6.4에는 다음 모듈이 추가되었습니다:

  • Qt HTTP Server - Qt 애플리케이션에 HTTP 서버를 내장하기 위한 모듈입니다. 이 모듈은 기술 미리보기(Technology Preview) 단계에 있으며, API 및 ABI의 안정성이 보장되지 않습니다.
  • Qt Quick 3D Physics - Qt Quick 3D에 물리 시뮬레이션 기능을 추가하는 고수준 QML 모듈입니다.

Qt 6.4에서는 Qt 5의 Qt TextToSpeech 모듈을 다시 도입합니다. 이 모듈은 Qt 6.3에는 포함되지 않았었으나, 이제 CMake 빌드 시스템을 사용하며 Qt 6과 호환됩니다.

각 모듈의 변경 사항에 대한 자세한 내용은 ‘Qt 6의 Qt 모듈 변경 사항’에서 확인할 수 있습니다.

Qt 6.4의 새로운 기능

Qt Core 모듈

  • QLatin1String 의 별칭으로 QLatin1StringView 가 추가되었습니다. 이제 Latin-1 문자열 뷰를 지칭할 때 이 이름을 사용하는 것이 권장됩니다.
  • QLatin1StringView(const char *, qsizetype) 및 QLatin1StringView(const char *, const char *) 생성자는 비명시적으로 변경되었습니다.
  • Qt::Literals::StringLiterals 네임스페이스에서 Latin-1 문자열 및 char 리터럴을 생성하기 위한 리터럴 연산자 _L1 가 추가되었습니다.
  • Qt::Literals::StringLiterals 네임스페이스에 QString 및 QByteArray 리터럴을 각각 생성하기 위한 리터럴 연산자 _s 및 _ba 가 추가되었습니다. _qs 및 _qba 는 _s 및 _ba 를 사용하기 위해 더 이상 사용되지 않습니다.
  • 동일한 이름의 알고리즘 오버로드와 혼동을 피하기 위해, 매개변수를 받지 않는 QString::count() 및 QByteArray::count() 메서드를 더 이상 사용하지 않습니다. 이 메서드들은 size() 또는 length() 메서드로 대체할 수 있습니다.
  • QStringEncoder 또한 Qt를 ICU 지원이 활성화된 상태로 빌드할 경우, QStringDecoder 이 이제 ICU에서 지원하는 모든 코덱을 지원합니다.
  • Android 및 JNI 개발용 클래스인 QJniObject 와 QJniEnvironment 에는 callMethod, findMethod 및 이와 유사한 메서드에 대한 오버로드가 추가되었습니다. 이제 시그니처 문자열을 명시하지 않고도 Java 함수를 호출하고 네이티브 메서드를 등록할 수 있습니다.
  • 새로운 템플릿 함수 QJniObject::construct()을 사용하면 타입이나 시그니처 문자열을 명시하지 않고도 C++에서 Java 클래스의 인스턴스를 생성할 수 있습니다.
  • QByteArray 이제 인스턴스에서 fromPercentEncoding() 정적 메서드를 호출하는 대신 percentDecoded() 인스턴스 메서드를 사용할 수 있습니다.
  • QTextStream 이제 char16_t의 입출력을 지원합니다.
  • QStringView 이제 localeAwareCompare() 메서드가 추가되었으며, 주어진 부분 문자열이 몇 번 나타나는지 count()로 확인할 수 있습니다.
  • QDate 이제 사용 가능한 경우 다양한 std::chrono 연-월-일 구조체 유형을 사용하여 생성할 수 있으며, 사용 가능한 경우 std::chrono::days를 인수로 받는 addDuration() 메서드가 있습니다.
  • QDateTime 마찬가지로 addDuration(std::chrono::milliseconds)가 추가되었으며, 동일한 유형을 더하거나 뺄 수 있는 산술 연산, QDateTime 값의 차이를 반환하는 함수, 그리고 특정 시점을 나타내는 다양한 std::chrono 유형을 받아들이는 몇 가지 정적 의사 생성자가 추가되었습니다.
  • QTimeZone::fromStdTimeZonePtr(const std::chrono::time_zone *)가 추가되었습니다.
  • QCalendar이제 QAnyStringView 를 이름으로 생성할 수 있습니다.

Qt GUI 모듈

Qt Quick 모듈xml-ph-0000@deepl.internal에 키보드 탐색 및 선택, 행 및 열 선택, 애니메이션, 하위 셀 배치 등을 지원하는 여러 가지

  • TableView 에 몇 가지 새로운 속성과 함수가 추가되어 키보드 탐색 및 선택, 행 및 열 선택, 애니메이션, 하위 셀 위치 지정 등에 대한 지원이 개선되었습니다.
  • TreeView 이제 선택을 지원하며, 트리 내 노드를 재귀적으로 확장 및 축소하기 위한 더 광범위한 API를 갖추게 되었습니다.
  • QQuickWidget 이제 OpenGL 외에도 지원되는 모든 3D 그래픽 API(Vulkan, Metal, Direct3D 11)에서 작동합니다. 애플리케이션은 QQuickWidget 를 사용할 때 더 이상 OpenGL로 렌더링을 강제할 필요가 없습니다.
  • 사용자 정의 머티리얼과 함께 사용되는 셰이더에서 결합된 이미지 샘플러 배열에 대한 지원이 추가되었습니다. 이는 새로운 함수 ` QSGMaterialShader::combinedImageSamplerCount()`와 ` QSGMaterialShader::updateSampledImage()`의 기존 ` texture ` 인자에 대한 향상된 의미론에 의해 지원됩니다.
  • QSGMaterialShader::GraphicsPipelineState 에서 폴리곤 래스터화 모드를 solid 에서 line 로 변경하는 기능이 추가되었습니다. (사용 중인 3D API가 이를 지원하는 경우에만 사용 가능)
  • ShaderEffectSource.format 이전 Qt 6 릴리스에서는 layer.format 가 유용하지 않았으며, 실제로는 레거시 값이 무시되었습니다. 이제 이에 대한 설명이 문서에 추가되었고, 실제로 유용한 새로운 값들이 도입되었습니다. 특히, 원하는 경우 RGBA8 대신 부동 소수점(FP16 또는 FP32) 텍스처를 요청할 수 있게 되었습니다.
  • QQuickRenderTarget::fromPaintDevice()가 추가되어, software 백엔드를 사용하는 QQuickWindow 의 출력도 리디렉션할 수 있게 되었습니다.
  • QQuickRenderTarget 에 텍스처 또는 이미지 객체의 네이티브 형식을 지정할 수 있는 오버로드가 추가되었습니다. 이는 RGBA8이 아닌 네이티브 텍스처를 다루어야 하는 일부 고급 사용 사례에서 관련이 있습니다. Qt의 렌더링 인프라에서 지원하는 네이티브 형식만 허용된다는 점에 유의하십시오.
  • QQuickRenderTarget 에 setMirrorVertically()를 추가하여, 3D API 기반 렌더링을 텍스처로 리디렉션할 때 Qt Quick 렌더러에 매트릭스를 변경하여 수직 반전된 결과를 얻도록 요청할 수 있게 되었습니다.
  • Qt Quick 이제 Windows에서는 주 그래픽 장치가 Qt와 호환되지 않는 경우, 환경 변수를 수동으로 설정할 필요 없이 Direct 3D(WARP)의 소프트웨어 래스터화 플랫폼을 사용하려고 시도합니다.
  • Qt Quick 시나그래프의 threaded 렌더 루프에, 비정상적인 vsync 기반 스로틀링을 감지하기 위한 간단한 휴리스틱을 추가했습니다. 렌더 스레드를 차단하지 않은 상태에서 프레임이 너무 빠르게 렌더링되거나 표시될 경우, 이제 애니메이션 실행 방식을 일반적인 타이머 기반 방식으로 자동 전환하여 QML 애니메이션이 너무 빠르게 실행되는 것을 방지합니다.
  • 사용자 정의 애니메이션을 위한 ` FrameAnimation `를 추가했습니다. 이를 통해 애니메이션 프레임과 동기화하여 사용자 정의 스크립트를 실행할 수 있습니다.

Qt Quick Controls 모듈

  • iOS용 새로운 네이티브 스타일인 ‘iOS Style’을 테크 프리뷰로 추가했습니다.
  • TreeViewDelegate TreeView 에서 현재, 선택됨, 강조 표시됨 여부를 나타내는 세 가지 새로운 속성이 추가되었습니다.

Qt Quick Dialogs 모듈

  • ColorDialog 가 추가되었습니다. 이 기능은 이를 지원하는 플랫폼에서는 네이티브 대화 상자로, 그 외 플랫폼에서는 비네이티브 Qt Quick 대화 상자로 표시됩니다.

    비네이티브 대화 상자는 Basic, Fusion, Imagine, Material 및 Universal 등 모든 비네이티브 스타일을 지원합니다.

Qt Widgets Module

  • QFormLayout 에는 새로운 isRowVisible() 및 setRowVisible() 멤버 함수가 있으며, 인덱스, 입력 위젯 또는 행 레이아웃별로 행을 숨기거나 표시할 수 있는 오버로드가 제공됩니다.
  • QKeySequenceEdit 에 새로운 clearButtonEnabled 속성이 추가되었습니다. 이 속성을 사용하여 위젯에 사용자가 편집 내용을 지울 수 있는 지우기 버튼을 표시할지 여부를 제어할 수 있습니다.
  • QWizard setCurrentId 라는 새로운 슬롯이 추가되어, 애플리케이션이 현재 페이지와 대상 페이지 사이의 중간 페이지를 거치지 않고 대상 페이지로 이동할 수 있게 되었습니다.

Qt Network 모듈

  • QSslServer 가 추가되었습니다. 이를 통해 TLS를 통해서만 통신하는 서버를 더 간편하게 생성할 수 있습니다.
  • QNetworkInformation 이제 loadBackendByFeatures(Features) 및 loadBackendByName(QStringView)이 추가되었습니다. 이 함수들은 현재 사용 중단으로 표시된 해당 오버로드된 load(Features/QStringView) 함수를 결국 대체할 예정입니다.

Qt Test 모듈

  • QTestEventLoop::enterLoopMSecs()는 이제 타임아웃이 1초 미만인 경우 PreciseTimer를 사용합니다.
  • 사용자 정의 QTest::compare() 구현은 이제 QTest::compare_helper() 호출을 수정하여, 더 이상 사용되지 않는 기존 오버로드 대신 두 가지 새로운 오버로드 중 하나를 사용해야 합니다(이렇게 하면 검사가 실제로 실패한 경우에만 실패 보고서에 값을 나타내는 문자열이 생성됩니다).
  • QAbstractItemModelTester::setUseFetchMore()이 추가되었습니다.
  • 새로운 매크로 QCOMPARE_{EQ,NE,GT,GE,LT,LE}()는 QCOMPARE()와 유사한 방식으로 결과를 보고하는 비교를 지원합니다. EQ 매크로는 QCOMPARE()의 사용자 정의 설정 없이 정확한 비교를 수행합니다. 이 매크로들에는 일반적인 QTRY_COMPARE_*() 및 QTRY_COMPARE_*_WITH_TIMEOUT() 변형도 함께 제공됩니다.

Qt Qml 모듈

  • QML 언어
    • 이제 이름을 지정하여 사용자 정의 값 유형을 등록할 수 있습니다. 즉, QML_VALUE_TYPE 의 인수가 더 이상 무시되지 않습니다. 인수는 반드시 소문자로 지정해야 합니다. 등록이 완료되면 QML에서 사용자 정의 값 유형의 속성을 선언할 수 있습니다.
    • 이제 QML에서 이름이 지정된 모든 값 유형을 목록에 저장할 수 있습니다. 예를 들어, QML의 list<rect>는 C++의 QList<QRectF>와 유사합니다. 이를 통해 해당 속성에 var를 사용하거나 요소를 객체로 감싸야 할 필요가 사라집니다.
    • 새로운 pragma ComponentBehavior를 사용하면 QML 파일에서 정의된 컴포넌트를 생성 컨텍스트 외부에서 사용할 수 있는지 여부를 지정할 수 있습니다. 사용할 수 없는 경우(pragma ComponentBehavior: Bound), Qt Quick Compiler 가 코드를 더 효율적으로 최적화할 수 있습니다.
  • 모듈 시스템
    • qmldir 파일에서 ` import ` 지시어가 개선되어 기본 임포트를 지원하게 되었으며, 이를 통해 모듈은 선택 사항임에도 불구하고 qmllint가 이를 기본으로 가정해야 할 임포트 항목을 지정할 수 있습니다.
  • QML 타입 컴파일러(qmltc)
    • QML 언어 지원 범위 확대
  • QML 스크립트 컴파일러(qmlsc, qmlcachegen)
    • 값 유형 목록에 대한 다양한 연산이 이제 C++로 컴파일됩니다.
    • 더 이상 사용되지 않는 코드와 저장 연산이 더 적극적으로 제거됩니다.
    • 이제 유형 변환은 값이 읽히는 곳이 아니라 쓰이는 곳에서 수행됩니다. 값이 여러 번 읽히는 경우, 이 방식이 더 빠릅니다.
  • QML 린터 (qmllint)
    • qmllint에 플러그인 지원이 추가되어 모듈별 진단 및 동작을 활성화할 수 있게 되었습니다.
    • QtQuick 의 올바른 사용과 관련된 새로운 경고가 추가되었으며, QtQuick.Controls
  • QML Language Server (qmlls)의 올바른 사용법에 관한 새로운 경고가 추가되었습니다.
    • 완성 기능 지원이 추가되었습니다.
    • 일부 린터 경고/힌트를 수정하는 코드 액션이 추가되었습니다.
    • 실행 파일을 libexec로 이동했습니다
  • CMake API 정리:

Qt Quick 3D 모듈

  • 라이트맵 베이킹 지원의 미리보기가 추가되었습니다. 이는 레이 트레이싱을 사용하여 미리 생성된 라이트맵을 통해 정적 전역 조명 솔루션을 제공합니다. 자세한 내용은 라이트맵 및 전역 조명을 참조하십시오.
  • 메탈니스/러프니스 대신 스페큘러/광택 워크플로를 사용할 수 있도록 SpecularGlossyMaterial 가 추가되었습니다.
  • 선 형태의 스프라이트 파티클을 생성할 수 있는 ` LineParticle3D ` 유형이 추가되었습니다.
  • 모델이 반사 프로브를 통해 렌더링되는지 및 반사된 이미지에 표시될 수 있는지 제어하기 위해 ` Model.castsReflection ` 속성을 추가했습니다. 동일한 속성이 ` sprite particles`에도 도입되었습니다.
  • 캡처 포인트의 위치에는 영향을 주지 않으면서 프로브의 위치에 상대적으로 박스를 이동시키는 ` ReflectionProbe.boxOffset ` 속성을 추가했습니다.
  • 프로브 박스를 시각화하는 큐브를 표시하기 위해 ` ReflectionProbe.debugView ` 속성을 추가했습니다.
  • 이미지 파일로부터 높이 필드 지오메트리를 생성할 수 있도록 ` HeightFieldGeometry `를 추가했습니다.
  • 셰이더에서 큐브 맵 텍스처와 함께 사용자 정의 머티리얼 및 후처리 효과를 사용할 수 있도록 CubeMapTexture 를 추가했습니다. 입력은 6개 면 모두에 대한 이미지 데이터가 포함된 .ktx 컨테이너이거나, 6개의 개별 이미지 파일입니다.
  • 라이트 프로브 대신 큐브맵을 사용하여 스카이박스를 렌더링하는 기능을 지원합니다. 이 기능은 SceneEnvironment.SkyBoxCubeMap 배경 모드를 설정하여 요청할 수 있습니다.
  • HDR 라이트 프로브 또는 스카이박스 텍스처를 절차적으로 생성하기 위해 ProceduralSkyTextureData 를 추가했습니다.
  • 포인트 라이트 및 스팟 라이트의 그림자 렌더링이 개선되었습니다.
  • View3D 가 (기본) 오프스크린 렌더 모드를 사용할 때 백킹 텍스처 형식을 지정할 수 있도록 View3D 에 renderFormat 속성을 추가했습니다. 사용 가능한 값은 ShaderEffectSource.format (이 기능 역시 6.4 버전에서 개정됨)과 동일합니다. 이를 통해 기본 RGBA8 대신 부동 소수점 텍스처를 사용할 수 있습니다.
  • UIP 파일 가져오기 기능이 제거되었습니다. 기존 Qt 3D Studio 기능과 Qt Quick 3D 간의 매핑은 이전 릴리스에서도 이미 문제가 있었습니다. 따라서 Qt 6.4에서는 balsam 도구에서 .uip 파일 지원이 제거되었습니다.

Qt Connectivity Module

  • QNdefMessage 는 더 이상 내보내지지 않습니다. 이 클래스는 QList 를 공개적으로 상속받지만, QList 는 내보내진 클래스에 의해 상속받도록 설계되지 않았습니다.

    경고: 이 변경 사항은 하위 호환성을 보장하지 않지만, 향후 하위 호환성 문제를 방지할 수 있습니다.

  • Qt Bluetooth 에서는 다양한 오류 열거형에 권한 부족 오류를 나타내는 새로운 오류 코드가 추가되었습니다. 현재 이러한 코드는 Android 및 macOS/iOS에서 사용됩니다. 예시는 QBluetoothLocalDevice::MissingPermissionsError 을 참조하십시오.

Qt WebEngine 모듈

플랫폼 변경 사항

WebAssembly

이제 Qt가 WebAssembly 플랫폼에서 완벽하게 지원됩니다. 자세한 내용은 Qt for WebAssembly의 플랫폼 문서를 참조하십시오.

모바일 플랫폼

Android

  • Gradle을 7.4.2로, Android Gradle 플러그인을 7.2.1로 업데이트했습니다.
  • NDK를 r23b(23.1.7779620)로 업데이트했습니다.
  • CMake에서 직접 서명된 패키지를 빌드할 수 있도록 CMake 변수 QT_ANDROID_SIGN_APK 및 QT_ANDROID_SIGN_AAB가 추가되었습니다.
  • Android 접근성 기능이 이제 스크롤 이벤트를 인식합니다.
  • Android 앱의 자산 로딩 속도가 개선되었습니다.

임베디드 플랫폼

Boot to Qt

  • Boot to Qt 스택이 Yocto 4.0.3(kirkstone)을 사용하도록 업데이트되었습니다.
  • NXP i.MX8M Plus LPDDR4 EVK가 새로운 참조 장치로 추가되었습니다.

QNX

  • 다음에 대한 지원이 추가되었습니다. Qt Multimedia.

WebOS

  • Qt 6.4는 LG webOS OSE 2.18.0(webOS용 Qt)에서 작동하는 것으로 검증되었습니다.

API 변경 사항 목록

이 페이지에는 Qt 6.4의 API 변경 사항에 대한 개요가 포함되어 있습니다:

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