Qt 6.6의 새로운 기능

Qt 6.6의 신규 및 복원된 모듈

Qt 6.6에는 다음과 같은 모듈과 도구가 추가되었습니다:

기술 프리뷰의 신규 및 복원된 모듈

참고: API 및 ABI 안정성은 보장되지 않습니다.

Qt Graphs 모듈

Qt GraphsQt Data Visualization 의 대체 모듈입니다. Qt Data Visualization 처럼 OpenGL 2.1에 의존하는 대신 Qt Quick 3D 을 렌더링 엔진으로 사용하여 네이티브 그래픽 백엔드를 지원합니다.

이 모듈은 Qt Data Visualization 의 모든 기능은 아니더라도 대부분의 기능을 제공합니다. 일부 고급 기능은 테크니컬 프리뷰에서 불완전할 수 있습니다.

Qt 6.6의 새로운 기능

Qt Core 모듈

  • 생성자 노디스카드를 표시하는 데 적용해야 하는 Q_NODISCARD_CTOR 매크로가 추가되었습니다. 이 매크로는 이를 지원하는 컴파일러에서는 [[nodiscard]] 로 해석되며, 다른 컴파일러에서는 아무 작업도 수행하지 않습니다.
  • 다음 Qt XML 컨테이너에 assign() 오버로드를 추가했습니다: QVarLengthArray, QList, QByteArrayQString. 이 함수는 기존 capacity() 을 재사용하면서 새로운 데이터를 할당하는 편리한 방법입니다.
  • 리소스 파일 시스템에 추가된 모든 파일의 내용은 CMakeLists.txt에서 QT_DISCARD_FILE_CONTENTS 소스 파일 속성을 지정하여 생략할 수 있습니다. 파일 노드는 유지됩니다. .qrc 파일을 수동으로 작성할 때 file XML 노드의 empty 속성을 true 으로 설정하면 동일한 효과를 얻을 수 있습니다.
  • QFileInfo 원시 경로를 반환하는 새로운 readSymLink() 멤버 함수와 타임스탬프와 관련된 함수에 대해 QTimeZone 을 받는 새로운 오버로드가 생겼습니다.
  • QProcess::UnixProcessParameters 구조체와 QProcess::UnixProcessFlag 열거형은 새로운 QProcess::setUnixProcessParameters() 멤버 함수에서 외부 파일 기술자를 닫는 등 자식 프로세스의 유닉스 관련 설정과 매개변수를 수정하는 데 사용할 수 있습니다.
  • 새로운 QNativeIpcKey 클래스는 QSharedMemoryQSystemSemaphore 에서 사용하는 네이티브 키를 보유하여 Apple 플랫폼에서 샌드박스가 적용된 애플리케이션에 대한 지원을 강화합니다. 자세한 내용은 네이티브 IPC 키를 참조하십시오.
  • 시간 범위로 작업하는 대부분의 Qt API는 std::chrono 에서 관련 데이터 유형으로 포팅되었습니다.
  • QXmlStreamReader::hasStandaloneDeclaration()는 문서에 명시적인 독립형 선언이 있는지 여부를 보고합니다.

Qt GRPC 모듈

  • QGrpcChannelOptionsQGrpcCallOptions 을 추가했습니다. 채널과 호출에 옵션을 전달하는 새로운 메서드입니다.
  • 호출에 추가 메타데이터를 전달하기 위해 QGrpcMetadata를 추가했습니다.
  • 자동 생성된 QtGRPC 클래스에 대한 통합 QML 유형 지원.

Qt GUI 모듈

  • 글꼴의 OpenType 기능에 직접 액세스할 수 있는 QFont::setFeatures()를 추가했습니다.
  • QPalette 이제 기본적으로 시스템의 강조 색을 사용하는 accent() 색상 항목이 있습니다.
  • QRhi 클래스 제품군은 이제 완전히 문서화되어 제한된 호환성을 약속하는 API로 제공됩니다. Qt 렌더링 하드웨어 인터페이스는 3D 그래픽 API 및 셰이딩 언어 추상화 레이어로, Qt QuickQt Quick 3D 같은 모듈에서 Direct 3D 11/12, Vulkan, Metal, OpenGL 및 OpenGL ES 위에서 작동할 수 있는 크로스 플랫폼 휴대용 렌더링 엔진 및 머티리얼 시스템을 구현하는 데 사용됩니다. 플랫폼별 3D API 및 셰이딩 언어에 직접 의존하지 않고 자체 로우레벨 렌더링을 수행하려는 애플리케이션은 이제 QRhi 및 관련 클래스를 사용하여 Qt Quick 장면을 증강하거나 QWindow 로 렌더링하거나 텍스처로 오프스크린 렌더링을 수행하거나 GPU 컴퓨팅 워크로드를 디스패치할 수 있습니다. 이전 Qt 6 릴리스에서 QRhi 클래스는 완전히 비공개였으며 표준 Qt 문서 세트의 일부로 문서가 제공되지 않았습니다. 이제 이 클래스는 QPA(QPlatform*) 클래스와 유사하게 취급되며, 이는 공개 Qt API의 모든 표준 패턴과 소스/바이너리 호환성 약속을 제공하지는 않지만 중급/고급 수준의 애플리케이션 개발자가 사용할 수 있는 특별한 클래스 집합을 형성한다는 것을 의미합니다. QRhi API에 대한 문서는 이제 표준 Qt 문서의 일부가 되었습니다. rhiwindow 예제도 소개했습니다.
  • QRhi 에 대한 Direct 3D 12 백엔드를 추가했습니다. Qt QuickQQuickWidget 의 기본 백엔드 선택은 계속해서 Windows에서 Direct 3D 11이며 가까운 미래에 변경되지 않을 것으로 예상되기 때문에 현재 어떤 애플리케이션에도 영향을 미치지 않습니다. 새로운 D3D12 백엔드는 당분간 실험적인 것으로 간주해야 하며, 주로 애플리케이션 자체 또는 일부 외부 컴포넌트의 렌더링 또는 D3D12를 필요로 하는 컴퓨팅 엔진과의 상호 운용을 단순화하기 위해 Qt가 Direct 3D 12를 통해 렌더링을 수행하도록 해야 하는 애플리케이션에 유용합니다.
  • Qt 6 애플리케이션은 이제 새로운 QUtiMimeConverter (macOS용) 및 QWindowsMimeConverter (Windows용) 클래스를 사용하여 사용자 지정 또는 플랫폼별 클립보드 형식을 지원할 수 있습니다. 이 클래스들은 Qt 5의 QMacPasteboardMime 및 QWindowsMime 타입의 통합 버전입니다. 기존 구현을 조정하는 데 도움이 필요하면 포팅 가이드를 참조하십시오.
  • QTextListFormat::setStart()를 사용하면 텍스트 목록이 1이 아닌 다른 인덱스로 시작할 수 있습니다.

Qt Location 모듈

  • 이제 지구본을 감싸거나 구멍이 있는 지도 항목을 포함하여 지도 항목이 더 올바르게 렌더링됩니다.
  • 이제 지도 항목을 다른 참조 표면을 사용하여 렌더링할 수 있습니다. QLocation::ReferenceSurface 열거형은 MapGlobe 옵션을 제공하며, 항목 유형에서 referenceSurface 속성과 함께 사용하여 항목이 평면 맵에 렌더링되는지 또는 지구본 곡률을 따르는지 여부를 제어할 수 있습니다.
  • 마우스 휠은 Shift 모디파이어를 누른 상태에서 bearing 를 변경하거나 Control 모디파이어를 누른 상태에서 tilt 를 변경할 수 있습니다.

Qt Multimedia 모듈

  • Qt Multimedia 라이브러리는 더 이상 오디오 또는 비디오 권한을 요청하지 않고 권한이 제공되었는지 여부만 확인합니다. 클라이언트 애플리케이션은 C++ 또는 QML 권한 API를 사용하여 권한을 요청해야 합니다.
  • 새로운 QWindowCapture 클래스는 QMediaCaptureSession 내에서 개별 데스크톱 애플리케이션 창의 비디오 캡처를 지원합니다. 녹화된 비디오는 QMediaRecorder 또는 QVideoWidget 와 같은 모든 유형의 비디오 출력으로 전송할 수 있습니다. 창 캡처는 FFmpeg 백엔드에서만 지원됩니다.
  • QMediaRecorder 비디오 품질, 해상도, 비트 전송률을 더 잘 제어할 수 있는 속성으로 확장되었습니다.

Qt PDF 모듈

Qt Positioning 모듈

  • Qt Positioning 라이브러리는 더 이상 위치 권한을 요청하지 않고 권한이 제공되었는지 여부만 확인합니다. 클라이언트 애플리케이션은 C++ 또는 QML 권한 API를 사용하여 권한을 요청해야 합니다.

Qt Protobuf 모듈

  • 특정 Qt CoreQt GUI 유형을 *.proto 스키마의 일부로 사용하여 활성화됩니다.
  • 자동 생성된 QProtobufMessage 클래스에 대한 통합 QML 유형 지원.
  • 자동 생성된 QProtobufMessage 클래스에 대해 암시적으로 공유되는 데이터로 마이그레이션. 이를 통해 많은 복사본을 만들지 않고도 QML 컨텍스트에서 메시지 유형별 값에 액세스할 수 있습니다.
  • google.protobuf.Any 유형에 대한 Qt Protobuf 잘 알려진 유형 지원을 추가했습니다.
  • 값을 포함할 필요가 없는 protobuf의 유니온 유사 유형인 oneof 유형에 대한 통합 지원이 추가되었습니다.

Qt Bluetooth 모듈

  • Qt Bluetooth 라이브러리는 더 이상 블루투스 권한을 요청하지 않고 권한이 제공되었는지 여부만 확인합니다. 클라이언트 애플리케이션은 C++ 또는 QML 권한 API를 사용하여 권한을 요청해야 합니다.
  • Qt는 이제 네이티브 128비트 부호 없는 int 유형을 quint128로 제공합니다. 이를 지원하는 플랫폼에서 QBluetoothUuid(quint128) 생성자 및 QBluetoothUuid::toUInt128() 메서드는 이제 이전 Qt 버전에서 사용하던 사용자 정의 구조체 대신 이 유형을 사용합니다. 코드가 quint128을 불투명 타입으로 취급하는 한, 이 변경 사항은 소스 및 바이너리 호환이 가능하지만 문제가 발생하면 QUuid::Id128Bytes 을 사용하는 새로운 오버로드를 사용하는 것이 좋습니다. 128비트 int 형을 지원하지 않는 플랫폼(예: MSVC)에서는 여전히 Qt Bluetooth 의 사용자 정의 구조체를 사용합니다.

Qt QML 모듈

  • QML을 통한 애플리케이션 권한 관리를 위한 지원이 추가되었습니다. Qt Qml Core 모듈은 크로스 플랫폼 방식으로 권한을 확인하거나 요청하는 데 사용할 수 있는 권한 유형 집합을 통해 Qt C++ 응용 프로그램 권한 기능을 QML에 노출합니다. 자세한 내용은 QML 애플리케이션 권한을 참조하십시오.
  • XMLHttpRequest 객체는 이제 최신 브라우저에 더 가깝도록 두 가지 기능이 추가되어 업데이트되었습니다. 리디렉션이 발생했는지 확인하는 데 사용할 수 있는 responseURL 속성이 추가되었습니다. 마찬가지로 overrideMimeType 메서드가 추가되어 XMLHttpRequest 객체가 응답의 Content-Type 헤더에 있는 내용이 아닌 특정 마임 유형에 따라 응답을 구문 분석하는 데 사용할 수 있습니다.
  • QML Language Server는 정의로 이동 및 찾기 사용법에 대한 초기 지원을 받았습니다. 또한 전체 문서 서식도 지원합니다.
  • 이제 플러그인을 통해 qmllint를 확장할 수 있습니다. 플러그인 API는 현재 기술 프리뷰 중입니다.

Qt Quick 모듈

  • 글꼴의 OpenType 기능에 직접 액세스할 수 있는 font.features 속성이 추가되었습니다.
  • TableView 단일 또는 여러 셀을 선택할 수 있는지 여부를 제어하는 selectionMode 속성이 있습니다.
  • TreeView 모델에서 하위 트리만 표시하는 rootIndex 속성이 있습니다.
  • AnimatedImage 이제 sourceSize 속성을 지원합니다.
  • 환경 변수 QT_QUICK_FLICKABLE_WHEEL_DECELERATION 를 사용하면 "클릭형" 휠 마우스로 스크롤한 후 감속을 사용자 지정할 수 있습니다. 기본적으로 스크롤 거리는 '클릭' 횟수에 비례하도록 가속이 꺼져 있지만(플랫폼에서 자체 가속을 제공하지 않는 한), 15000보다 작은 값을 설정하여 이전 동작을 복원할 수 있습니다. flickDeceleration 속성은 이제 터치 플릭에만 적용됩니다.
  • 대부분의 프로퍼티는 이제 최종 프로퍼티이므로 더 이상 같은 이름의 새 프로퍼티를 선언하여 섀도잉할 수 없습니다. FINAL 프로퍼티가 섀도잉되면 경고가 표시됩니다. 예기치 않은 동작 변경을 방지하기 위해 이러한 속성의 이름을 변경하는 것이 좋습니다.
  • QQuickWindow, QQuickRenderControl, QSGTexture 에 여러 QRhi 관련 함수를 추가하고 노출했습니다. 화면 내 또는 화면 밖 Qt Quick 렌더링에 사용되는 QRhi, QRhiSwapChain 또는 QRhiCommandBuffer 쿼리가 간소화되었습니다. QRhi * 클래스에 의존하기 때문에 이전에 문서에서 숨겨져 있던 일부 함수가 표시됩니다. createTextureFromRhiTexture ()를 QQuickWindow 에 createTextureFromImage()에 대응하는 함수로 추가했습니다.
  • 시나리오 예제 업데이트: rhiunderqml을 추가하고, 기존의 OpenGL 전용 fboitem 예제를 새로운 이식 가능한 rhitextureitem 예제로 대체하고, customrendernode 예제를 업데이트했습니다. 여기에는 커스텀 로우 레벨 2D/3D 렌더링으로 Qt Quick 씬을 확장하는 세 가지 방법(언더레이/오버레이, 텍스처로 렌더링하여 커스텀 항목 지원, QSGRenderNode 을 사용한 커스텀 항목)이 설명되어 있습니다.
  • 경로를 렌더링하기 전에 경로를 자동으로 단순화하는 Path::simplified 프로퍼티를 추가했습니다. QPainterPath::simplified () 함수를 미러링합니다.
  • QQuickWindow 의 렌더링에 대한 GPU 타임스탬프 수집 지원을 추가했습니다. QQuickGraphicsConfigurationsetTimestamps() 또는 해당 환경 변수로 활성화하면 qt.scenegraph.time.renderloop 와 같은 로깅 카테고리를 활성화할 때 출력되는 디버그 출력과 Qt Quick 3DDebugView 항목에 GPU 측 타이밍이 표시되어 CPU 측 타이밍을 보완합니다. 이 기능은 현재 Direct 3D 11, Metal 및 Vulkan에서 지원됩니다(기본 Vulkan 구현이 타임스탬프 쿼리를 지원한다고 가정할 때). 나머지 3D API에 대한 지원은 향후 릴리스에서 도입될 예정입니다.

Qt Quick Controls 모듈

  • SpinBoxlive 속성을 추가했습니다. 사용자가 displayText 을 편집할 때 value 이 업데이트되는지 여부를 제어합니다.
  • 다이얼에 wrapped 신호를 추가했습니다. 이 신호는 다이얼이 감길 때, 즉 최대값을 넘어 최소값으로 이동하거나 그 반대의 경우 발생합니다.
  • 다이얼에 startAngleendAngle 속성을 추가했습니다. 이 속성은 다이얼의 시작 및 끝 각도를 도 단위로 제어합니다.

Qt Quick 레이아웃 모듈

Qt Quick 도형 모듈

  • 기본 지오메트리 렌더러보다 높은 품질로 커브를 렌더링하고 MSAA를 사용하지 않고 앤티 앨리어싱을 적용하는 실험적인 커브 렌더링 백엔드가 추가되었습니다. Shape::preferredRendererType 속성을 사용하여 선택할 수 있습니다.

Qt Quick 3D 모듈

  • ProceduralTextureData 이라는 TextureData 을 절차적으로 생성하기 위한 QML API를 추가했습니다. 이전에는 QQuick3DTextureData 을 서브클래싱하여 C++ 에서만 가능했습니다.
  • ProceduralMesh 이라는 절차적으로 메시 지오메트리를 생성하기 위한 QML API를 추가했습니다. 이전에는 QQuick3DGeometry 를 서브클래싱하여 C++ 를 통해서만 가능했습니다.
  • 이제 PLY 파일을 임포트할 수 있습니다.
  • QQuick3DTextureData 을 사용한 3D 텍스처 생성 지원이 추가되었습니다.
  • 초기 렌더러 익스텐션 지원이 추가되었습니다. 이는 추가 패스를 추가하고 기본 제공 렌더 패스를 커스터마이징할 수 있는 첫 단계입니다. View3D 에는 QQuick3DRenderExtension 하위 클래스 배열을 취하는 확장이라는 새로운 프로퍼티가 있습니다. 이는 QQuick3DExtensionHelpers 의 헬퍼 함수를 사용하여 추가로 지원됩니다.

Qt SQL 모듈

  • Mimer SQL용 플러그인이 추가되었습니다.
  • MySQL/MariaDB에 새로운 연결 옵션 MYSQL_OPT_PROTOCOL, MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_OPT_TLS_VERSION, MYSQL_OPT_SSL_MODE가 추가되었습니다.
  • ODBC 플러그인은 이제 모든 기본 오류 코드를 다음과 같이 반환합니다. QSqlError
  • QSqlQuery 두 개의 새로운 함수 boundValueName()/boundValueNames()가 추가되었습니다.

Qt TextToSpeech 모듈

QTextToSpeech 클래스는 모든 엔진에서 사용할 수 있는 몇 가지 트릭을 더 배웠습니다:

  • 애플리케이션은 enqueue 을 통해 합성 엔진에 여러 개의 텍스트 청크를 추가할 수 있습니다.
  • 새로운 aboutToSynthesize 신호는 텍스트 청크가 합성되기 직전에 방출됩니다.
  • 이제 findVoices 멤버 함수를 사용하여 엔진에서 제공하는 음성 중 하나를 기준에 따라 쉽게 선택할 수 있습니다. QML 코드는 VoiceSelector 유형을 첨부 속성으로 사용할 수도 있습니다.

모든 엔진에서 모든 새로운 기능을 사용할 수 있는 것은 아닙니다. 애플리케이션은 새로운 Capabilities 플래그와 engineCapabilities 속성을 사용하여 현재 사용 중인 엔진이 다음 중 어떤 새로운 기능을 지원하는지 확인할 수 있습니다:

  • 엔진에 Synthesize 기능이 있는 경우 QTextToSpeech 은 이제 텍스트를 PCM 데이터로 합성할 수 있습니다. synthesize 함수는 합성된 PCM 데이터 청크를 수신하는 콜러블과 함께 사용할 수 있습니다.
  • 엔진에 WordByWordProgress 기능이 있는 경우 QTextToSpeech 은 현재 텍스트 청크의 각 단어가 발화될 때 sayingWord 신호를 전송합니다.

Qt WebEngine 모듈

  • QWebEngineLoadingInfo 에 응답 헤더가 추가되었습니다.
  • QWebEngineUrlRequestJob 에 추가 응답 헤더를 추가할 수 있게 되었습니다.
  • 사용자 정의 URL 체계에 HTML5 Fetch API를 활성화하기 위한 QWebEngineUrlScheme::FetchApiAllowed 플래그가 추가되었습니다.
  • qWebEngineGetDomainAndRegistry() 함수를 추가하여 크롬/QtWebEngine 에서 보는 유효 최상위 도메인을 읽을 수 있습니다.
  • 핑거프린팅에 대한 추가 보호를 위해 캔버스 읽기를 비활성화하는 QWebEngineSettings::DisableReadingFromCanvas 설정이 추가되었습니다.

Qt Widgets 모듈

  • QWidget 에 이니셜라이저 목록을 가져오는 새로운 setTabOrder() 오버로드가 추가되어 한 번의 호출로 전체 체인을 설정할 수 있습니다.
  • QMessageBox::Option 는 각 메시지 상자에 대해 네이티브 메시지 상자를 사용할지 여부를 제어할 수 있는 수단을 제공합니다.

플랫폼 변경 사항

데스크톱 플랫폼

macOS

  • 이제 macOS용 사용자 프로젝트 또는 Qt 자체를 빌드하려면 CMake 버전 3.21.1 이상이 필요합니다.
  • QMessageBox::setCheckBox()는 이제 네이티브 메시지 상자를 사용할 때 존중됩니다.
  • QFileDialog 더 이상 불필요하게 권한 대화 상자를 트리거하지 않습니다.

모바일 플랫폼

안드로이드

  • QDesktopServices::openUrl() 사용 시 FileProvider 지원을 추가했습니다.
  • 기본적으로 AndroidX를 추가했습니다(FileProvider에 대한 종속성).
  • 안드로이드 전용 대상 프로퍼티에 대한 QTP0002 CMake 정책을 도입했습니다.
  • 안드로이드에서 지원되는 예제 목록이 업데이트되었습니다.
  • 안드로이드 13을 최대 지원 버전으로 변경
  • Gradle을 버전 8.3.0으로 업데이트했습니다.
  • QFileDialog 선택한 이름 필터뿐만 아니라 제공된 모든 이름 필터를 적용합니다.
  • 2023년 Play 스토어 요구 사항에 맞게 Android 대상 SDK 레벨을 33으로 업데이트했습니다.

iOS

  • 렌더링 및 입력 마스킹을 위한 QWindow::setMask()에 대한 지원이 추가되었습니다.
  • 외부 창에 대한 지원이 추가되어 QWindows에 UIView를 임베드할 수 있습니다.

임베디드 플랫폼

Boot to Qt

  • Yocto 4.2(미클도어)에 대한 지원이 추가되었습니다.
  • 대상 하드웨어에 대한 지원 레벨이 새로운 지원 보드로 업데이트되었습니다:
    • NXP i.MX 93 보드에 대한 티어 1 지원이 추가되었습니다.
    • Jetson AGX Xavier 보드에 대한 티어 1 지원이 추가되었습니다.
    • NXP i.MX 8QuadXPlus 보드에 대한 티어 3 지원이 추가되었습니다.
    • 토라덱스 아팔리스 iMX8 보드에 대한 티어 3 지원이 추가되었습니다.
  • 토라덱스 및 ST 타깃은 이제 최신 Yocto LTS 버전(kirkstone)을 사용합니다.

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