Qt 6.7의 새로운 기능

Qt 6.7의 새로운 기능

Qt Core Module

  • QSpan, Qt의 C++20 std::span 재구현이 추가되었습니다.
  • Qt::strong_ordering, Qt::weak_ordering, Qt::partial_ordering 클래스가 추가되어 std::*_ordering 클래스의 C++17 호환 구현이 가능해졌습니다.
  • Qt 클래스에서 관계형 연산자를 편리하게 구현하기 위한 헬퍼 매크로를 추가했습니다. 이 매크로는 C++20 빌드에서는 연산자<=>()를 제공하고, C++17 빌드에서는 6개의 관계형 연산자 모두로 되돌아갑니다.
  • QDate, QTime, QDateTime, QTimeZone, qfloat16 클래스에 이 헬퍼 매크로를 적용했습니다.
  • 새 클래스 QAtomicScopedValueRollback 를 추가했습니다.
  • Qt::Key_micro 를 추가하여 잘못된 이름의 Key_mu를 대체했습니다. 그리스 문자 mu, U+03BC 또는 U+039C가 아닌 마이크로 기호 U+00B5입니다.
  • QLocale의 name(), bcp47Name() 및 uiLanguages() 함수는 이제 호출자가 이름에서 태그 사이에 사용할 구분 기호를 지정할 수 있습니다.
  • QLocale 이제 형식이 지정된 날짜/시간의 시간대 부분을 (가능한 한) 현지화합니다.
  • 이제 두 자리 연도의 날짜(및 날짜/시간) 구문 분석에서 호출자가 해당 연도가 선택되는 세기를 제어할 수 있습니다.
  • QCalendar 이제 두 자리 연도 구문 분석을 지원하기 위해 matchCenturyToWeekday() 함수가 있습니다.
  • QDateTime 이제 호출자가 시간대 전환을 해결하는 방법을 제어할 수 있도록 TransitionResolution 매개변수를 허용합니다. 간격이 있는 날짜/시간의 기본 해상도는 이제 유효하지만, 시간() 및 날짜()는 이제 요청된 것이 아니라 toMSecsSinceEpoch()가 보고하는 것과 일치합니다.

Qt D-Bus 모듈

  • 더 이상 사용되지 않는 <qdbusmacros.h> 헤더가 제거되었습니다. 대신 <qtdbusglobal.h>를 사용하십시오.
  • 새로운 함수 QDBusAbstractInterface::setInteractiveAuthorizationAllowed()를 사용하면 비동기 호출에 대해 ALLOW_INTERACTIVE_AUTHORIZATION 플래그를 설정할 수 있습니다.

Qt Graphs 모듈

Qt Graphs3D

  • 데이터 API는 모든 데이터 항목을 힙 메모리에 생성할 필요가 없습니다.
  • 이미지에 렌더링 기능이 추가되었습니다.

Qt Graphs2D

  • 2D 그래프의 기술 미리보기.
  • 막대, 선 및 분산형 그래프에 대한 초기 지원이 포함되어 있습니다.

Qt GRPC 모듈

  • 인터셉터를 사용하여 QtGRPC 호출과 스트림의 동작을 사용자 정의하는 기능을 추가했습니다. 이제 QGrpcClientInterceptor를 서브클래싱하고 원하는 인터셉트 메서드를 재정의할 수 있습니다.
  • QGrpcServerStream, QGrpcClientStream 및 QGrpcBidirStream 클래스를 도입했습니다. 이는 각각 클라이언트, 서버 및 양방향 스트리밍 호출을 허용하는 데 사용됩니다.

참고: Qt GRPC 모듈은 기술 미리보기 아래에 있습니다.

Qt GUI 모듈

  • Windows 10과 11, macOS와 iOS, Android에서 기본 아이콘 라이브러리에 대한 액세스를 제공하는 QIconEngine 구현을 추가했습니다.
  • 자식 창이 추가 및 제거될 때 창에 알리기 위한 QChildWindowEvent 클래스와 함께 새로운 이벤트 유형 QEvent::ChildWindowAddedQEvent::ChildWindowRemoved 을 추가했습니다.
  • 모든 플랫폼에서 가변 애플리케이션 글꼴 로드를 활성화했습니다(Windows에서 DirectWrite 또는 FreeType 백엔드 필요).
  • QFont variable fonts 와 함께 작동하는 새로운 API가 추가되었습니다.
  • 새로운 가변 글꼴 지원 API와 Qt 6.6에서 예비 API로 도입되어 현재 확정된 support for typographical features 으로 축을 지정하는 데 새로운 QFont::Tag 타입을 사용할 수 있습니다.

Qt Multimedia 모듈

  • FFmpeg 멀티미디어 백엔드는 이제 Windows의 FFmpeg와 동적으로 연결됩니다. 사전 빌드된 FFmpeg 바이너리는 온라인 인스톨러를 통해 제공됩니다. FFmpeg 백엔드를 사용하는 Windows 애플리케이션은 이제 windeployqt를 사용하여 FFmpeg 바이너리를 설치 프로그램의 일부로 번들링해야 합니다.
  • 새로운 MediaPlayer::autoPlayVideo::autoPlay 속성을 사용하여 미디어 소스가 설정되었을 때 자동으로 재생을 시작할 수 있습니다.
  • QCameraDevice 에는 새로운 correctionAngle 프로퍼티가 있습니다. 이 속성은 기본 방향과 비교하여 카메라의 물리적 카메라 회전을 보정하는 데 필요한 회전 각도를 나타냅니다.

Qt Network 모듈

  • HTTP 헤더를 나타내는 QHttpHeaders 클래스를 추가했습니다.
  • QNetworkRequestQNetworkAccessManager 으로 전송 시간 초과를 설정하기 위한 std::chrono 지원을 추가했습니다.
  • QNetworkRequestFactory 클래스를 추가했습니다(테크니컬 프리뷰). 이 클래스는 네트워크 요청을 생성하기 위한 편의 클래스입니다.
  • QRestAccessManagerQRestReply (기술 미리보기)를 추가했습니다. 이 클래스는 RESTful 사용 사례에 맞게 조정된 편의 래퍼입니다.

Qt OPC UA 모듈

Qt Protobuf 모듈

  • QProtobufMessage 기반 클래스에 대해 JSON 직렬화 및 역직렬화 기능을 구현하는 새로운 직렬화기를 추가했습니다.
  • Qt Protobuf 생성기에 '선택적' 필드 지원이 추가되었습니다. 메시지 필드가 '선택적'으로 표시된 경우 일반 필드 메서드 외에 clear<fieldName> 및 has<fieldName> 메서드가 추가됩니다.
  • Qt Protobuf 생성기에서 생성된 열거형 필드는 이제 첫 글자의 대소문자를 유지합니다. 이전 생성기는 생성된 열거형 필드 이름을 대문자로 표시했습니다.

참고: Qt Protobuf 모듈은 기술 미리보기 아래에 있습니다.

Qt QML 모듈

  • QML Language Server 에 새로운 기능 추가: 서식 지정, 시맨틱 및 코드 스니펫 완성, 사용법 이름 바꾸기, CMake에서 QT_QML_GENERATE_QMLLS_INI를 통한 파일 생성 설정.
  • QML 파일의 번역 컨텍스트는 다음을 통해 설정할 수 있습니다. pragma Translator
  • 이제 값 유형에 QML_CONSTRUCTIBLE_VALUEQML_STRUCTURED_VALUE 을 선언하고 QML에서 해당 유형의 객체를 생성할 수 있습니다. 사실 Qt 6.5부터 이미 가능했지만 이제 공식적으로 지원됩니다.

Qt Quick Compiler

  • 이제 값 유형의 프로퍼티를 작성하는 바인딩과 함수를 C++로 컴파일할 수 있습니다.
  • 이제 선택적 체인을 C++로 컴파일할 수 있습니다.
  • for...in 반복을 이제 C++로 컴파일할 수 있습니다.

Qt Quick Module

  • 파일에서 로드하기 위한 TextEdit.textDocument.source 프로퍼티, 쓰기 위한 save() 및 saveAs() 함수가 추가되었습니다. 이는 텍스트 처리 사용 사례에서 XMLHttpRequest 을 대체하기 위한 것입니다.
  • TextEditTextAreacursorSelection 속성을 추가하여 선택한 텍스트의 속성을 검사하고 수정할 수 있도록 했습니다.
  • 텍스트 편집기 예시를 업데이트하여 이러한 기능을 시연했습니다.
  • 매우 큰 텍스트를 렌더링할 때 더 나은 결과를 제공하는 새로운 텍스트 렌더러를 추가했습니다. renderTypeText.CurveRendering 으로 설정하여 선택할 수 있습니다.
  • 텍스트 클래스에 variable fonts 와 함께 작동하는 새로운 API가 추가되었습니다.
  • 직사각형은 이제 다른 radii on each corner 을 가질 수 있습니다.
  • Window의 부모 프로퍼티와 함께 Qt Quick 장면에 QWindows를 임베드하는 예비 지원을 추가하여 Window의 시각적 부모를 설정할 수 있습니다.
  • Control 의 focusReason 및 focusPolicy 프로퍼티가 Item 로 이동되었습니다.
  • QQuickFramebufferObject 에 대한 최신 대안으로 QQuickRhiItem 을 추가했습니다. 이를 통해 Qt의 렌더링 하드웨어 인터페이스에서 지원하는 모든 하드웨어 가속 그래픽 API (예: OpenGL, Vulkan, Direct3D 또는 Metal)를 통해 3D 그래픽을 렌더링하는 사용자 정의 QQuickItem 객체를 만들 수 있습니다.
  • QRhi 을 사용하여 완전히 이식 가능하고 지원되는 모든 3D API와 함께 작동하는 새로운 QQuickRenderControl 예제를 추가했습니다. 여기에는 Qt Quick 콘텐츠를 크로스 플랫폼 방식으로 텍스처로 리디렉션하는 방법이 나와 있습니다.

Qt Quick Controls 모듈

Qt Quick 셰이프 모듈

  • 커브 렌더러와 관련 속성 preferredRendererType 이 이제 공식적으로 지원되며 더 이상 실험적인 것으로 간주되지 않습니다.
  • 셰이프 특성화를 위한 pathHints 프로퍼티가 추가되었습니다. 렌더러에서 경로 처리 및 렌더링을 최적화하는 데 사용할 수 있습니다.
  • 도형은 이제 도형의 경계 직사각형에 따라 암시적 크기를 가지며 레이아웃에서 적절하게 배치됩니다. fillMode , horizontalAlignmentverticalAlignment 속성이 추가되어 항목에 암시적 크기와 다른 명시적 크기가 주어졌을 때 도형이 작동하는 방식을 수정할 수 있습니다.
  • 기술 미리보기로 svgtoqml 도구가 추가되었습니다. 이 도구는 SVG 파일을 QML 코드로 변환하는 데 사용할 수 있는 도구입니다. 현재 실험적인 것으로 간주되며 Qt SVG 에서 지원하는 것의 일부만 지원합니다.

Qt Quick Timeline 모듈

  • QtQuick.Timeline.BlendTrees 하위 모듈은 여러 타임라인 애니메이션을 블렌딩할 수 있는 새로운 API를 추가합니다.

Qt Quick 3D 모듈

  • QQuick3DRenderExtension 은 애플리케이션 측 렌더링 확장을 구현하기 위한 새로운 클래스로, 이제 사용자는 QtQuick3Ds 엔진을 수정하지 않고도 QtQuick3Ds 렌더링 파이프라인을 확장할 수 있습니다. 이제 QtQuick3D 에서 제공하는 새로운 준공개 API 및 Qt 렌더링 하드웨어 인터페이스(QRhi)와 함께 사용자 정의 렌더링 코드를 QtQuick3D 의 렌더링 파이프라인에 삽입하여 메인 렌더 패스의 일부로 렌더링하거나 독립형 렌더링 레코딩으로 렌더링할 수 있습니다. 독립형 렌더링 레코딩의 결과는 이전 확장 프로그램에서 사용할 수 있으며, extensions 선언 순서에 따라 제어할 수 있습니다. 독립형 렌더 확장은 텍스처 항목의 텍스처 공급자로 노출될 수도 있으므로 그 결과를 머티리얼, 효과 등과 같이 QtQuick3D 의 텍스처 유형을 소비하는 다른 QtQuick3D 유형과 함께 사용할 수 있습니다.
  • QSSG 클래스 패밀리는 문서화되어 있으며 제한된 호환성을 약속하는 API로 제공됩니다. Qt 공간 씬 그래프 클래스는 QtQuick3D 의 내부 유형과 상호 작용하기 위한 액세스 및 유용한 헬퍼를 제공합니다. QSSG 클래스는 두 가지 주요 그룹으로 나눌 수 있습니다. 첫 번째 그룹은 QRhi 을 사용하여 QtQuick3D 씬에 커스텀 렌더링을 수행하는 데 필요한 상태에 대한 액세스를 제공하고, 두 번째 클래스 그룹은 QtQuick3D 의 렌더러블에 대한 액세스와 QtQuick3D 내부에서 사용되는 것과 동일한 인프라를 사용하여 해당 렌더러블을 수정, 취하거나 다시 렌더링할 수 있도록 하는 헬퍼를 제공합니다.
  • CustomMaterial 새로운 sourceAlphaBlenddestinationAlphaBlend 프로퍼티가 생겼습니다.
  • 텍스처에 새로운 textureProvidertilingModeDepth 프로퍼티가 생겼습니다.
  • View3D 새로운 explicitTextureWidth, explicitTextureHeight, effectiveTextureSize 프로퍼티가 생겼습니다.

Qt Quick 3D Physics Module

Qt Serial Bus 모듈

  • QCanDbcFileParser 에 UTF-8 이외의 인코딩으로 DBC 파일을 파싱할 수 있는 메서드를 추가했습니다.

Qt SQL 모듈

  • 더 이상 사용되지 않는 <qsql.h> 헤더가 제거되었습니다. 대신 <qtsqlglobal.h>를 사용하십시오.

Qt WebEngine 모듈

Qt Widgets 모듈

  • Qt의 렌더링 하드웨어 인터페이스에서 지원하는 모든 하드웨어 가속 그래픽 API, 즉 OpenGL, Vulkan, Direct3D 또는 Metal을 통해 3D 그래픽을 렌더링하기 위한 QRhiWidget 클래스(기술 프리뷰 중)를 추가했습니다.
  • QCheckBox 새로운 검사 상태를 타입 안전 Qt::CheckState 열거형 값으로 방출하는 새로운 신호 checkStateChanged를 얻었습니다.
  • QDateTimeEdit 새로운 timeZone 프로퍼티가 생겼습니다.
  • Windows 11 이상을 실행하는 시스템에서는 새로운 Windows 11 위젯 스타일이 기본적으로 사용됩니다. 이 스타일은 Windows 다크 모드를 지원합니다.

Qt SVG 모듈

  • SVG 1.1 표준의 일부 요소에 대한 지원이 추가되었습니다. 마스크, 심볼, 마커, 패턴, 필터 및 필터 프리미티브(feMerge, feColorMatrix, feGaussianBlur, feOffset, feComposite, feFlood)가 해당 요소입니다.
  • 새로운 요소의 렌더링을 활성화 또는 비활성화하는 QtSvg::Options 플래그를 추가했습니다.
  • QSvgRendererQSvgWidget 에 대한 QtSvg::Options 에 대한 세터와 게터를 추가했습니다. 새로운 기능은 기본적으로 활성화됩니다.

Tools

Qt Widgets Designer

  • Qt Widgets Designer 는 이제 범위 지정 열거형과 Qt for Python 을 지원하기 위해 정규화된 열거형 값을 .ui 파일에 씁니다. 이러한 값 읽기에 대한 지원은 6.6.1 및 6.5.4로 백포트되었습니다.

플랫폼 변경 사항

데스크톱 플랫폼

Windows

macOS

  • 이제 macOS 14가 지원되는 빌드 및 대상 플랫폼입니다.

Linux의 Wayland 클라이언트

WebAssembly

  • 드롭 지원(드래그 앤 드롭)이 추가되었습니다. 이제 사용자가 애플리케이션 창에 콘텐츠를 놓으면 Qt가 드롭 이벤트를 전송합니다.
  • 이제 OpenGL ES 3 / WebGL2가 기본값이며, OpenGL ES2 / WebGL 1로 폴백됩니다.
  • 엠스크립트 버전이 3.1.50으로 업데이트되었습니다.

모바일 플랫폼

Android

  • Android 플러그인 자바 코드의 리팩터링이 이루어졌습니다:
    • 아키텍처 및 다양한 클래스 간의 관계 단순화(예: QtActivity, QtActivityLoader, QtActivityDelegate 간).
    • 공용 바인딩 패키지에서 QtLoader 클래스 이동.
    • 리플렉션 사용 제거.
  • 안드로이드용 자식 창에 대한 예비 지원을 추가하여 Qt 및 다른 QPA와 일관성을 유지했습니다. 그 결과 QScreen::grabWindow()는 현재 일시적으로 지원되지 않습니다.
  • 지원되는 최대 플랫폼 버전은 Android 14로 설정하고 기본 플랫폼 SDK 및 대상 수준은 API 34로 설정합니다.
  • 지원되는 Android NDK 버전을 r26b(26.1.10909125)로, JDK를 17로 설정합니다.
  • 모바일 카테고리 예제를 iOS와 일치시켰습니다.
  • QScreen 의 안드로이드 디스플레이 아이디에 대한 액세스를 제공하는 QNativeInterface::QAndroidScreen 을 추가했습니다.
  • 테스트 크래시 보고서를 예쁘게 인쇄하기 위해 안드로이드 테스트 러너와 함께 ndk-stack을 사용할 수 있도록 지원을 추가했습니다.
  • 안드로이드 패키지의 배포 유형을 명시적으로 설정할 수 있는 CMake 변수 QT_ANDROID_DEPLOYMENT_TYPE을 추가했습니다.
  • Qt 안드로이드 플랫폼에 대한 전반적인 재작성 및 업데이트.
  • 안드로이드 프로젝트에서 Qt의 강력한 기능을 사용할 수 있는 기능 도입:
    • Qt Quick Java 또는 Kotlin 코드에서 Qt Quick 을 사용하기 위한Android 클래스 보기 (기술 미리 보기).
    • 안드로이드 스튜디오용 안드로이드 스튜디오용Qt 도구 (기술 미리보기).

iOS

  • 이제 iOS 17이 지원 대상 플랫폼입니다.

임베디드 플랫폼

Boot to Qt

  • Yocto 4.3(Nanbield)에 대한 지원이 추가되었습니다.
  • ARM Linux 개발 호스트에 대한 지원이 추가되었습니다.
  • 스퀴시 지원이 대상 이미지에 포함되었습니다.
  • 대상 하드웨어에 대한 지원 수준이 티어 3에 대한 새로운 지원 보드로 업데이트되었습니다:
    • Amazon AWS EC2 ARM64
    • 엔비디아 젯슨 AGX 오린 개발자 키트
    • NXP i.MX8M Nano LPDDR4 EVK(DDR4 EVK 변형 대체)
    • 퀄컴 로보틱스 RB5 개발 키트
    • TI SK-AM69

VxWorks

  • 기술 프리뷰로 VxWorks 23.09 지원이 추가되었습니다.

빌드 시스템 변경 사항

  • 이제 Qt C++ 헤더에 IWYU 도구에 대한 메타데이터가 포함됩니다.
  • CMake: 이제 qt_generate_deploy_app_script(), qt_deploy_runtime_dependencies()의 *deployqt 도구에 대한 인수를 DEPLOY_TOOL_OPTIONS를 설정하여 조정할 수 있습니다.
  • CMake: qt_add_library()가 이제 BUILD_SHARED_LIBS 변수 값을 고려합니다. 변수가 정의되어 있으면 라이브러리 타깃을 추가할 때 qt_add_library()의 라이브러리 유형 감지 로직보다 높은 우선순위를 갖습니다.
  • CMake: qt_standard_project_setup()을 사용하면 이제 애플리케이션의 기본 UI 언어와 UI가 번역되는 언어를 설정할 수 있습니다. 그런 다음 qt_add_translations() 호출을 통해 지정된 언어와 일치하는 .ts 및 .qm 파일을 생성하여 네이티브 언어에 대한 '복수 전용' .ts 파일을 생성합니다.
  • CMake: 이제 여러 대상을 qt_add_translations()에 전달하여 번역을 추출할 수 있습니다. 또는 디렉터리 또는 타깃 수준에서 원하지 않는 타깃을 제외하는 옵션을 사용하여 qt_add_translations()가 프로젝트의 모든 타깃을 수집하도록 할 수 있습니다(새로운 qt_collect_translation_source_targets() 함수를 통해 수행).
  • CMake: qt_add_translations()가 기술 프리뷰에서 제거되었습니다.

WebOS

  • Qt 6.7이 LG webOS OSE 2.25.0(webOS용 Qt)에서 작동하는 것이 확인되었습니다.

API 변경 사항 목록

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

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