Qt 6.3의 새로운 기능

Qt 6.3의 신규 및 복원된 모듈

Qt 6.3에는 다음과 같은 모듈이 추가되었습니다:

Qt 6.3은 Qt 6.2에 없던 다음 모듈을 다시 도입했습니다. 나열된 모든 모듈은 Qt 6 및 CMake 빌드 시스템으로 포팅되었습니다.

  • Qt PDF (테크니컬 프리뷰에서)

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

Qt 6.3의 새로운 기능

Qt Core 모듈

  • 여러 퓨처를 결합하기 위한 QtFuture::whenAll() 및 QtFuture::whenAny() 함수가 추가되었습니다.
  • QDir::mkdir() 및 QFile::open() 권한 인자를 받아들이는 오버로드를 추가했습니다.
  • QMetaType 이제 QFuture<T>를 QFuture<void>로 변환할 수 있습니다.
  • QDirIterator::nextFileInfo()를 추가하여 전체 파일 정보를 가져올 수 있습니다.
  • QLocale의 언어 코드와 언어 값의 매핑에 이제 고려할 ISO 639 코드 유형을 지정하는 오버로드가 있습니다.
  • QRegularExpressionMatch 이제 주어진 그룹이 전혀 캡처되었는지 테스트하는 hasCaptured() 메서드가 있습니다.
  • QProcessEnvironment 에 각각의 QProcess 가 시작될 때 프로세스 환경을 부모 프로세스로부터 상속할지 여부를 선택할 수 있는 새로운 열거형과 생성자가 추가되었습니다.

    경고: 이전 Qt 버전에서는 문서에서 상속하지 않는다고 했지만 기본 동작은 상속하는 것이었습니다. Qt 6.3에서는 기본 생성자의 동작이 문서와 실제로 일치하도록 변경되었습니다. 즉, QProcessEnvironment()에서 만든 QProcessEnvironment 을 사용하여 QProcess 을 시작하면 빈 환경에서 시작됩니다. 이전 동작으로 되돌리려면 QProcessEnvironment(QProcessEnvironment::InheritFromParent)를 사용하세요.

    또한 새로운 방식으로 생성된 인스턴스를 테스트하는 inheritsFromParent() 메서드를 추가했습니다.

  • QVarLengthArray 이제 emplace() 및 emplace_back() 메서드가 있습니다.
  • QLocale, QTimeQDateTime 의 구문 분석 및 직렬화에서 사용되는 시간 형식은 이제 'aP' 및 'Ap' 형식 지정자를 인식하여 AM/PM 표시기를 얻으며, 이전에는 시간 형식 작성자가 사용자의 로캘과 충돌할 수 있는 대소문자를 선택해야 했지만 이제는 표시기에 로캘에 적합한 대소문자를 사용하여 표시기를 얻습니다. QTimeQDateTime 의 경우 로캘은 항상 C이며 표시기는 대문자입니다. QLocale 의 경우 이제 대소문자가 amText() 또는 pmText()의 대소문자와 일치합니다. 이전에는 'aP'를 소문자 표시자 뒤에 'P'가, 'Ap'를 대문자 표시자 뒤에 'p'가 있는 것으로 읽어야 했습니다. 이제 'P' 또는 'p'는 형식 지정자의 일부로 취급됩니다. 이전 동작을 원할 경우 형식 지정자로 'APp' 또는 'apP'를 사용하거나 형식에서 'p' 또는 'P'를 따옴표로 묶어야 합니다. 이전의 'a', 'ap', 'A' 및 'AP' 지정자는 영향을 받지 않습니다.
  • QDebug 이제 QVarLengthArray 객체를 스트리밍할 수 있습니다.
  • QObject::findChildren()에 이제 이름이 없는 오버로드가 있습니다.
  • QSemaphore 에 오버로드와 메서드 이름을 추가하여 std::counting_semaphore 및 std::chrono와의 호환성을 높였습니다.
  • QJsonValue 이제 QJsonArrayQJsonObject 를 취하는 rvalue 생성자가 있습니다.
  • QCborMap::fromJsonObject() 및 QCborArray::fromJsonArray()에 이제 rvalue 오버로드가 있습니다.
  • QByteArrayView::trimmed()에 선행 및 후행 공백을 생략하는 기능을 추가했습니다.
  • QByteArrayView 에 숫자 파싱 메서드를 추가했습니다.
  • QByteArray, QByteArrayView, QUtf8StringView 에 isValidUtf8() 메서드를 추가했습니다.
  • result()에 대한 보기를 제공하기 위해 QCryptographicHash::resultView()를 추가했습니다.
  • QStringBuilder가 이제 QByteArrayView 을 지원합니다.
  • QUuid 이제 QAnyStringView 에서 생성할 수 있습니다.
  • QLocale 이제 QStringView 을 받는 생성자가 있습니다.
  • QByteArrayList::join()에 이제 QByteArrayView 를 받는 오버로드가 있습니다.
  • QCryptographicHash::addData()에는 이제 QByteArrayView 를 받는 오버로드가 있습니다.
  • qSwap()는 이제 constexpr입니다.
  • 새로운 공용 CMake API를 추가했습니다:

Qt GUI 모듈

  • 이제 자동이 아닌 값으로 QGuiApplication::setLayoutDirection()를 호출하면 설치된 번역기를 기반으로 한 자동 감지를 비활성화합니다.
  • QDesktopServices::setUrlHandler()로 전달된 URL 핸들러는 이제 삭제되기 전에 unsetUrlHandler()를 호출하여 제거해야 합니다. 핸들러의 소멸자에 의존하여 암시적으로 설정 해제하는 것은 더 이상 사용되지 않습니다.
  • QVulkanWindow 이제 물리적 디바이스에서 지원되는 것으로 보고된 모든 Vulkan 1.0 기능을 활성화합니다.

Qt Quick 모듈

  • 새 항목이 추가되었습니다: TreeView.
  • 모든 포인터 핸들러에는 설정 가능한 parent 프로퍼티가 있습니다.
  • HoverHandlerWheelHandler 에는 각각 호버와 휠 이벤트가 핸들러의 parent 뒤에 있는 아이템과 핸들러로 전파되는지 여부를 제어하는 blocking 프로퍼티가 있습니다.
  • TapHandler 이제 gesturePolicy 값이 하나 더 추가되었습니다: DragWithinBounds; 사용자가 포인트를 누른 상태에서 드래그하더라도 드래그 중에 timeHeld 이 재설정되지 않고, 사용자가 그렇게 오래 누르고 있으면 드래그 임계값에 관계없이 longPressed 신호가 방출된다는 점을 제외하면 WithinBounds 과 유사합니다. 이는 포인터 핸들러 예시의 파이 메뉴와 같은 메뉴와 같은 누르고 끌기 해제 컴포넌트를 구현하는 동시에 timeHeld 을 사용하여 '열기' 애니메이션을 직접 구동할 때 유용합니다.

  • QQuickItem::clipRect()는 이제 viewport (상위 Flickable 또는 Window)에 표시되는 영역을 제공하며, updatePaintNode()를 더 자주 호출하는 대신 사용자 정의 항목에서 최적화를 통해 장면 그래프 노드 정점을 제한하는 데 사용할 수 있습니다. 새로운 QQuickItem::ItemObservesViewportQQuickItem::ItemIsViewport 플래그에 대한 문서를 참조하세요.
  • 메모리와 시작 시간을 절약하기 위해 TextTextEdit 은 이제 뷰포트 외부에 있어 보이지 않는 텍스트의 큰 부분에 대한 장면 그래프 노드 생성을 피합니다(Flickable 또는 Window).
  • Text 이제 HTML 또는 마크다운에서 가로 규칙을 렌더링합니다.
  • Text 에서는 HTML 소스에 포함된 CSS 규칙으로 가로 규칙과 밑줄/외곽선/취선 색상을 지정할 수 있습니다.
    import QtQuick
    
    Text {
        textFormat: Text.RichText
        wrapMode: Text.WordWrap
        width: 440
        font.pointSize: 12
        text: `<p><u style="color: green;">green with underline</u>
                  <span style="text-decoration: underline; text-decoration-color: green;">
                    green underline</span></p>
               <p><s style="background-color: lightgrey;">plain strikethrough</s>
                  <span style="text-decoration: line-through; text-decoration-color: orange;">
                    orange strikethrough</span></p>
               <p><span style="text-decoration: overline;">plain overline</span>
                  <span style="text-decoration: overline; text-decoration-color: red;">
                    red overline</span></p>`
    }
  • QQuickItem::dumpItemTree( QObject::dumpObjectTree()와 유사) 또는 QML에서 호출하여 항목 및 모든 하위 항목에 대한 qDebug- 연산자 출력을 표시하고 트리 구조를 표시하기 위해 들여쓰기할 수 있는 함수가 추가되었습니다.
  • TapHandler tapped, singleTappeddoubleTapped 신호에는 이제 QEventPoint 인스턴스와 탭되는 button 두 개의 인수가 있습니다. 신호 핸들러가 필요한 경우 해당 인수를 받는 명시적 함수를 작성해야 합니다:
    onTapped: function(point, button) { ... }
    onDoubleTapped: (point, button)=> ...
  • DragHandler activeTranslation 는 이제 드래그 제스처가 시작된 이후의 움직임의 양을 저장합니다. persistentTranslation 는 이후의 드래그 제스처 동안 발생한 누적된 움직임의 합계를 저장하며 제스처 사이에 임의의 값으로 재설정할 수 있습니다.

Qt Quick Controls 모듈

Qt Quick 대화창 모듈

  • FolderDialogMessageDialog 이 추가되었습니다. 이는 이를 지원하는 플랫폼에서는 네이티브 대화상자이며, 다른 플랫폼에서는 비네이티브 Qt Quick 대화상자입니다.

    비네이티브 대화 상자는 모든 비네이티브 스타일을 지원합니다: 기본, 퓨전, 상상, 머티리얼 및 유니버설.

Qt Widgets 모듈

  • QToolBar 은 이제 키네틱 휠 또는 트랙 패드를 사용한 스크롤을 지원합니다.

몇 가지 새로운 QStyle 열거형 값을 사용하여 위젯 기반 UI의 추가적인 룩앤필 측면을 사용자 정의할 수 있습니다:

Qt Network 모듈

  • QNetworkInformation transportMedium을 배웠습니다. 기본 네트워크 인터페이스의 전송 매체를 반환하는 속성입니다.
  • QNetworkInformation 또한 isMetered. 네트워크가 미터링되는지 여부를 반환하는 속성.

Qt QML 모듈

  • QML 타입 구조를 C++로 컴파일하는 기술 미리보기 QML 타입 컴파일러(qmltc)를 추가했습니다.
  • 이제 컴파일러 인프라를 사용하는 qmllint에 몇 가지 새로운 경고를 추가했습니다.
  • 헤더 전용 qmlintegration 모듈을 사용하면 qtdeclarative에 종속성을 추가하지 않고도 QML 모듈에 등록할 유형을 표시할 수 있습니다. 그런 다음 새로운 qt_generate_foreign_qml_types() CMake API를 통해 QML 모듈에 추가할 수 있습니다.
  • qmlcachegen은 이제 성능 향상을 위해 적절한 함수와 표현식을 C++로 컴파일합니다.
  • 새로운 공용 CMake API가 추가되었습니다:

Qt Quick 3D 모듈

  • 모델에 리플렉션을 표시할 수 있는 ReflectionProbe 을 추가했습니다.
  • Particles3D: 사용자 지정 CBOR 바이너리 파일에서 이미징 모양을 로드하는 새로운 ParticleCustomShape3D 요소가 추가되었습니다.
  • Particles3D: 이제 스프라이트 파티클에 3D 환경 조명이 지원됩니다.
  • Particles3D: 선언적 동적 방출 및 트레일 시작/종료 시간에 방출하기 위한 새로운 DynamicBurst 요소 추가.
  • 리소스 수명을 명시적으로 설정할 수 있는 ResourceLoader 컴포넌트가 추가되었습니다(테크니컬 프리뷰).
  • PrincipledMaterial: 클리어코트, 트랜스미션, 리프랙션에 대한 지원이 추가되었습니다.
  • glTF2: 임포터가 이제 다음과 같은 추가 확장을 지원합니다: KHR_materials_clearcoat, KHR_materials_ior, KHR_materials_transmission, KHR_materials_volume

Qt WebEngine 모듈

  • 이제 파이썬 2 대신 파이썬 3으로 빌드합니다.
  • QML 터치 선택 메뉴 대체를 위한 API 추가
  • 새로운 공개 CMake API가 추가되었습니다:

Qt Data Visualization 모듈

  • Q3DSurface 에서 QSurface3DSeries 의 와이어프레임 색상을 설정하는 새로운 wireframeColor 프로퍼티를 추가했습니다.
  • Q3DBars 에서 막대 행에 다른 색상을 설정하는 새로운 rowColors 프로퍼티를 추가했습니다.
  • Q3DBars 에서 개별 막대의 여백을 설정하는 새로운 barSeriesMargin 프로퍼티를 추가했습니다.
  • QAbstract3DGraph 에 시리즈가 이미 추가되었는지 확인하는 hasSeries 함수를 추가했습니다.
  • 16비트 높이 맵을 지원합니다.

Qt Positioning 모듈

  • Android 및 iOS 플랫폼용 DirectionAccuracy 속성이 새로 추가되었습니다. 제공된 베어링의 정확도를 나타냅니다.

Qt Bluetooth 모듈

  • QBluetoothLocalDevice 의 Windows 구현을 확장했습니다. 어댑터 상태를 올바르게 보고하고 상태를 토글할 수 있습니다. 연결/연결 해제된 디바이스 추적에 대한 지원은 아직 누락되었습니다.
  • 광고 중에 게시된 대로 블루투스 저에너지 서비스 데이터를 노출하도록 QBluetoothDeviceInfo API를 확장했습니다.

Qt Wayland Compositor 모듈

  • 사용자 지정 셸 확장을 생성하는 API를 추가했습니다. 사용법은 예시를 참조하세요.
  • Qt에서 사용할 수 있는 모든 윈도우 시스템 기능을 지원하는 Qt 셸을 추가했습니다.
  • presentation-time 프로토콜에 대한 지원이 추가되었습니다.
  • 다양한 소스의 클라이언트를 지원하기 위해 동일한 서버에서 여러 입력 방법 프로토콜에 대한 지원이 추가되었습니다.

플랫폼 변경 사항

기술 미리보기 플랫폼

WebAssembly

웹어셈블리용 Qt에 대한 몇 가지 개선이 이루어졌습니다. 자세한 내용은 웹어셈블리용 Qt의 플랫폼 문서를 참조하십시오.

  • 시스템 클립보드에 이미지 및 html 텍스트 복사/붙여넣기 지원이 추가되었습니다.
  • SIMD 지원이 추가되었습니다. SIMD를 활성화하려면 소스에서 Qt를 빌드해야 합니다.
  • 보조 스레드에서 QEventLoop::exec() 및 QThread::exec() 호출에 대한 지원이 추가되었습니다.
  • 엠스크립텐 비동기화를 사용하여 메인 스레드에서 QEventLoop::exec() 및 QDialog::exec() 호출에 대한 지원이 추가되었습니다. 비동기화를 활성화하려면 소스에서 Qt를 빌드해야 합니다.
  • 이제 드래그 앤 드롭이 비동기화 활성화 빌드에서 작동합니다.
  • 웹소켓을 통한 Emscriptens 에뮬레이트된 POSIX TCP 소켓을 사용하여 웹소켓을 통한 TCP 및 UDP 소켓 터널링에 대한 지원이 추가되었습니다. 이 지원은 메인 스레드의 비동기 소켓으로 제한됩니다.

ARM의 Windows

ARM64의 Windows는 Qt 최적화 빌드의 문제가 아직 해결되지 않았기 때문에 기술 프리뷰에 남아 있습니다.

모바일 플랫폼

Android

  • 인앱 구매 데모와 Qt 3D: 행성 QML 예제에 안드로이드 관련 개선 사항이 적용되었습니다.
  • Gradle을 7.2.0으로 업데이트하고 Android Gradle 플러그인(AGP)을 7.0.2로 업데이트했습니다(JDK 11 이상 필요).
  • CMake 안드로이드 프로젝트에 누락된 _make_aab 타겟을 추가했습니다.
  • CMake용 다중 ABI 빌드가 추가되었습니다( QT_ANDROID_ABIS 참조).
  • QML 모듈은 이제 사용자의 빌드 폴더 아래에 있는 "android-qml"이라는 공통 디렉터리로 스테이징됩니다. 이 디렉터리는 안드로이드 배포 도구의 공통 임포트 경로 역할을 합니다.
  • 이제 QML 테스트 벤치가 Android 빌드에서 작동합니다.

iOS

  • 이제 CMake 기반 프로젝트에서 기본 실행 화면이 생성됩니다.

임베디드 플랫폼

Boot to Qt

  • Boot to Qt 스택이 Yocto 3.4(honister)를 사용하도록 업데이트되었습니다.
  • Qt PDF Qt 언어 서버가 Boot to Qt 스택에 포함되었습니다.

기타

Wayland

  • DataDeviceV3 프로토콜에 대한 지원을 구현했습니다.
  • wl_seat 지원을 버전 7로 업그레이드했습니다.
  • 서버가 여러 인터페이스를 지원하는 경우 입력 방법 프로토콜 선택에 대한 지원이 추가되었습니다. 이는 프로토콜 이름에 QT_WAYLAND_TEXT_INPUT_PROTOCOL을 설정하면 됩니다.

API 변경 사항 목록

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

모든 Qt 6 릴리스에 추가된 기능

What's New in Qt 6.0

Qt 6.0의 새로운 기능을 나열합니다.

What's New in Qt 6.1

Qt 6.1의 새로운 기능을 나열합니다.

What's New in Qt 6.2

Qt 6.2의 새로운 기능을 나열합니다.

What's New in Qt 6.3

Qt 6.3의 새로운 기능을 나열합니다.

What's New in Qt 6.4

Qt 6.4의 새로운 기능을 나열합니다.

What's New in Qt 6.5

Qt 6.5의 새로운 기능을 나열합니다.

What's New in Qt 6.6

Qt 6.6의 새로운 기능을 나열합니다.

What's New in Qt 6.7

Qt 6.7의 새로운 기능을 나열합니다.

What's New in Qt 6.8

Qt 6.8의 새로운 기능을 나열합니다.

What's New in Qt 6.9

Qt 6.9의 새로운 기능을 나열합니다.

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