Qt 6.12의 새로운 기능
Qt 6.12의 신규 및 복원된 모듈
Qt 6.12에는 다음과 같은 모듈과 도구가 추가되었습니다:
- Qt Qml 디자인 지원 모듈: QML에서 객체를 등록하고 참조하기 위한 일련의 타입을 제공합니다. 이는 향후 Qt Quick 디자인 툴링을 위해 마련되었습니다.
Qt 6.12의 새로운 기능
ActiveQt 모듈
주목할 만한 변경 사항은 없습니다.
Qt Bluetooth Module
- Android 백엔드는 이제 BTLE 광고를 시작할 때 QLowEnergyAdvertisingParameters 를 통해 제공된 광고 최소 및 최대 간격 매개변수를 준수합니다.
Qt Canvas Painter 모듈
- Qt Canvas Painter 모듈은 기술 미리보기(Technology Preview) 단계에서 벗어나 이제 완전히 유지 관리(지원)되고 있습니다.
- 이 모듈에는 Qt Canvas Painter를 기반으로 하는 새로운 QML API인 ` QtCanvas2D`가 추가되었습니다. 이 API는 여전히 기술 미리보기(Technology Preview) 상태입니다.
- QCanvasPath SVG 경로 문자열을 직접 구문 분석하기 위한 addPath() 오버로드가 추가되었습니다.
- QCanvasPainter 경로 채우기에 대한 EvenOdd 채우기 규칙을 지원하기 위해 ` QCanvasPainter::FillRule ` 및 ` QCanvasPainter::setFillRule()`가 추가되었습니다.
- QCanvasGradient 이미지에서 직접 그라데이션을 생성하기 위한 ` setImage()` 메서드가 추가되었습니다.
- QCanvasRadialGradient 비대칭(두 중심) 방사형 그라데이션을 지원하기 위해 생성자와 setInnerCenterPosition() / setOuterCenterPosition()이 추가되었습니다.
Qt CoAP 모듈
주목할 만한 변경 사항은 없습니다.
Qt Core 모듈
- QRangeModel의 RowOptions 및 ItemAccess 사용자 정의 지점이
headerData(), 그리고 행별 및 항목별flags()을 지원하도록 확장되었습니다. QRangeModel 는 두 사용자 정의 지점 모두에서 사용자 정의 및 유형 안전한 MIME 유형 처리를 지원하는 drag'n'drop handling 를 추가했으며, supportedDragActions 및 supportedDropActions 속성을 지원합니다. QRangeModel 는 이제 로케일 인식 정렬을 위한 sortCollator 를 지원하는 sort()와 빠른 콘텐츠 매칭을 위한 match()도 구현합니다. - QSharedPointer 의 정적 형변환을 위한 새로운 무료 함수인 qSharedPointerStaticCast 가 추가되었습니다.
- QSortFilterProxyModel DataChangeRelevanceFlag 열거형과 가상 () 메서드가 추가되어, 하위 클래스에서 소스 신호가 재필터링 또는 재정렬을 트리거할지 여부를 제어할 수 있게 되었습니다. dataChangeRelevanceFlags
dataChanged - 새로운 QAbstractItemModel::compareData()은 항목 뷰 사용 사례에 맞게 특별히 설계된 방식으로 두 QVariant를 비교하기 위한 새로운 보호된 API입니다.
- qfloat16 증감 연산자와 단항 operator+ 이 추가되었습니다.
- QVariant rvalue 참조로부터 생성자가 추가되었습니다.
- QMap 및 QMultiMap 는 이제 여섯 가지 비교 연산자 모두를 구현합니다.
- QVarLengthArray QList API와 일치하는 ()이 추가되었습니다. removeAt
- QDateTime, QDate 및 QTime 의 fromString() 메서드와 QLocale 의 toDateTime(), toDate() 및 toTime() 메서드는 이제 다양한 형식에서 더 빠른 새로운 파서를 사용합니다.
- QTimeZone 이제 생성자 및 isTimeZoneIdAvailable()에서 CLDR-canonical IANA 별칭 ID를 허용합니다. QTimeZone::availableTimeZoneIds()는 이제 해당 별칭을 포함합니다.
- QFile::copy()는 이제 선택적 QFileDevice::Permissions 인수를 허용합니다. QSaveFile 은 이제 commit()이 호출될 때까지 요청된 권한 적용을 연기합니다.
- Qt::compareThreeWay()에
std::pair에 대한 오버로드가 추가되었습니다. - QCalendarPermission WriteOnly 액세스 모드가 추가되었습니다.
- QFileSystemWatcher 이제 FreeBSD 15 이상에서
inotify를 사용할 수 있습니다. - QStandardPaths macOS에서 ` standardLocations()`에 시스템 전체의 `
/Library/Preferences` 디렉터리가 포함됩니다. iOS에서 ` PublicShareLocation `는 올바른 경로를 반환하며, ` TemplatesLocation `는 지원되지 않는 것으로 올바르게 보고됩니다. - QEasingCurve 3차 베지어 이징 곡선을 생성하기 위한 편리한 헬퍼 함수인 fromCubicBezier()이 추가되었습니다.
- QJsonObject cbegin() 및 () STL 스타일의 const 이터레이터가 추가되었습니다. 는 및 에서 rvalue 생성자를 상속받았습니다. cend QJsonDocument QJsonArray QJsonObject
Qt D-Bus 모듈
주목할 만한 변경 사항은 없습니다.
Qt Graphs 모듈
- 이제 Qt Canvas Painter를 2D 그래프의 렌더링 백엔드로 사용할 수 있습니다. configure 단계에서
-feature-graphs-2d-high-performance-backendconfigure 플래그를 사용하여 이 기능을 활성화하십시오. - 2D 그래프를 위한 새로운 로그 축 유형인 QLogValueAxis (QML에서는LogValueAxis )이 추가되었습니다.
- QXYSeries QML에서 선언적 데이터 입력을 위한 values, valueMapping, valueMin 및 stepSize 속성이 추가되었습니다.
- QPieSeries QML에서 선언적 방식으로 데이터를 입력할 수 있도록 sliceData 및 sliceLabels 속성이 추가되었습니다.
- QValueAxis 또한 QLogValueAxis 에는 축 레이블 텍스트를 사용자 정의할 수 있는 labelPostFormat 속성이 추가되었습니다.
- Q3DGraphsWidgetItem 3D 그래프에서 패닝을 활성화하고 구성하기 위한 panEnabled 및 dragMode 속성이 추가되었습니다.
- QDateTimeAxis tickCount 속성이 추가되었습니다.
Qt GRPC 모듈
- 클라이언트 측 요청 압축 기능이 추가되었습니다. 새로운 QtGrpc::CompressionAlgorithm 열거형은 QGrpcChannelOptions::setRequestCompression() 및 QGrpcCallOptions::setRequestCompression()을 통해 선택하여 발신 메시지를 압축할 수 있습니다.
- QGrpcChannelOptions 에 supportedCompressionAlgorithms(), acceptedCompressionAlgorithms() 및 setAcceptedCompressionAlgorithms()가 추가되어, 클라이언트가
grpc-accept-encoding요청 헤더에서 알리고 서버 응답에서 수락할 압축 알고리즘을 제어할 수 있게 되었습니다. - 수신 메시지의 크기를 제한하기 위해 QGrpcChannelOptions 및 QGrpcCallOptions 에 maximumReceiveMessageSize() 및 setMaximumReceiveMessageSize()가 추가되었습니다.
Qt GUI 모듈
- QRhi 에 간접 렌더링 지원이 추가되었습니다. 이제
IndirectDrawBuffer유형의 버퍼를 생성할 수 있으며, QRhiCommandBuffer 를 통해 간접 드로우 호출을 발행할 수 있습니다. - QRhi 셰이더 드로우 매개변수 내장 함수(예:
gl_DrawID)에 대한 지원 여부를 조회하기 위해 ShaderDrawParameters 기능 플래그가 추가되었습니다. - QRhi Vulkan 백엔드는 이제
VK_EXT_device_fault를 사용하여 장치 손실에 대한 추가 세부 정보를 보고합니다. - QAccessibilityHints 모션 감소 접근성 기본 설정을 위한 motionPreference 속성이 추가되었습니다.
- QStyleHints toolTipWakeUpDelay 가 추가되어, 애플리케이션이 툴팁이 표시되기 전의 지연 시간을 조회하거나 조정할 수 있게 되었습니다.
- QImageReader ` autoTransform()`을 준수하는 이미지 크기를 반환하는 ` effectiveSize()`이 추가되었습니다.
- QTextCursor::deletePreviousChar() (Backspace)가 이제 다중 코드 단위 이모지 시퀀스를 올바르게 처리합니다.
- 입력 방식이 전체 화면을 차지하지 않도록 요청하는 Qt::InputMethodHint::ImhNoFullscreen 가 추가되었습니다.
- 소수점을 포함한 숫자만 입력할 수 있도록 제한하고, 음수는 입력할 수 없도록 하는 Qt::InputMethodHint::ImhDecimalNumbersOnly 가 추가되었습니다.
Qt HTTP Server 모듈
- QHttpServerConfiguration 모듈에 동시 연결 총 수를 제한하는 setMaximumConnections()와 IP 주소당 연결 수를 제한하는 setMaximumConnectionsPerHost()가 추가되었습니다.
Qt Image Formats 모듈
주목할 만한 변경 사항은 없습니다.
Qt Lottie Animation 모듈
- 글리프 경로 렌더링을 포함하여 Lottie 텍스트 레이어에 대한 지원이 추가되었습니다.
- Lottie 타원, 직사각형 및 다각형 모양 요소에서 애니메이션 치수 지원과 그라데이션 획, 레이어 마스크 및 레이어 자동 방향 지정 기능이 추가되었습니다.
- Lottie 시간 리매핑 및 시간 스트레칭 기능을 지원합니다.
- VectorImage 에서 Lottie 애니메이션 재생을 제어하기 위한 LottieVectorImageController 가 도입되었습니다. 이 타입은 currentFrame, frameRate, startFrame 및 endFrame 속성과 함께 play(), pause() 및 gotoAndPlay()와 같은 재생 메서드를 제공합니다.
Qt MQTT 모듈
주목할 만한 변경 사항은 없습니다.
Qt Multimedia Module
- QScreenCapture 및 QWindowCapture 에는 캡처 프레임 속도를 제한하는 maximumFrameRate 속성이 추가되었습니다. 동일한 속성은 ScreenCapture 및 WindowCapture QML 유형에서도 사용할 수 있습니다.
- QAudioSource QAudioSink 에는 네이티브 오디오 버퍼 주기 크기를 조회하고 제어하기 위한 () 및 ()가 추가되었습니다. nativePeriodFrameCount setNativePeriodFrameCount
- QMediaCaptureSession::setNativeVideoSource() 및 GStreamerVideoSource QML 요소가 추가되어, 사용자 정의 GStreamer 파이프라인이 비디오 프레임을 QMediaCaptureSession 로 전달할 수 있게 되었습니다.
- QMediaMetaData::ThumbnailImage 는 더 이상 사용되지 않으며, 백엔드에서 더 이상 이 값을 채우지 않습니다. 대신 CoverArtImage 를 사용하십시오.
- QSoundEffect 이제 URL이 변경되지 않는 경우에도 setSource() 호출 후 항상 sourceChanged 를 반환합니다.
Qt Network 모듈
- TLS 키 자료 익스포터(RFC 5705)를 노출하기 위해 QSslKeyingMaterial 및 QSslConfiguration::keyingMaterial() / setKeyingMaterial()이 도입되었습니다.
- QHostInfo clearCache() 메서드가 추가되어 프로그래밍 방식으로 DNS 결과 캐시를 플러시할 수 있게 되었습니다.
- QHttpHeaders QDataStream 스트림 연산자, 헤더를 구문 분석하기 위한 () 및 이를 설정하기 위한 ()이 추가되었습니다. 새로운 QHttpHeaderRange 클래스는 해당 헤더 내의 단일 바이트 범위를 나타냅니다.
RangerangeValues setRangeValues - OpenSSL TLS 백엔드는 이제 OpenSSL 4를 기반으로 빌드하는 것을 지원합니다.
Qt Network 인증 모듈
주목할 만한 변경 사항은 없습니다.
Qt OPC UA 모듈
주목할 만한 변경 사항은 없습니다.
Qt OpenAPI 모듈
- qt_add_openapi_client() 에
GENERATE_DOCUMENTATION,DOCUMENTATION_OUTPUT_DIRECTORY옵션이 추가되어 클라이언트 코드와 함께 Doxygen 기반 문서를 생성할 수 있게 되었습니다. - oneOf 스키마 기능에 대한 지원이 추가되었습니다.
- 생성된 모델 속성 게터(getter)의 이름이 변경되었습니다. 이제 ` Q_PROPERTY `는 YAML 파일에서 사용된 것과 동일한 속성 이름을 노출합니다.
- 생성된 클라이언트 API 메서드는 더 이상 가상 메서드가 아닙니다.
Qt Positioning 모듈
- QGeoSatelliteInfo::SatelliteSystem 에 IRNSS 및 SBAS 위성 시스템에 대한 항목이 추가되었습니다.
Qt Print Support 모듈IRNSS 및 SBAS 위성 시스템에 대한 항목이 추가되었습니다.
주목할 만한 변경 사항은 없습니다.
Qt Protobuf 모듈
- 생성된 메시지 클래스의 Qt 속성은 이제 기본적으로 FINAL 수식어로 표시됩니다. 이를 통해 QML 툴링이 성능 최적화를 적용하고 더 효율적인 코드를 생성할 수 있습니다. 이전 동작으로 되돌리려면 qt_add_protobuf() 의 새로운 옵션
GENERATE_NON_FINAL_PROPERTIES을 사용하십시오.
Qt Qml 모듈
- QQmlEngine 에 setExternalSingletonInstance() 메서드가 추가되어, 외부에서 생성된 C++ 객체를 QML 싱글톤으로 등록할 수 있게 되었습니다. 이제 QML_UNCREATABLE 를 QML_SINGLETON과 함께 사용할 수 있습니다.
- string.arg() QML의 ``는 이제 JavaScript 관례에 따라 여러 인자를 허용합니다.
- QML에서 HTML 특수 문자를 이스케이프하기 위한 Qt.escapeHtml() 전역 함수가 추가되었습니다.
- 필수 속성이 누락된 컴포넌트를 인스턴스화할 때, 엔진은 더 이상 불완전한 객체를 조용히 생성하지 않고 오류를 보고합니다.
- QQmlProperty 는 qmlProperty 로 명명된 값 유형입니다. QML에서 속성 유형, 함수 인자 또는 반환 유형으로 사용할 수 있습니다.
- QtQml.Models import: ` SortFilterProxyModel `에 ` RangeFilter`, ` RegExpFilter`, ` AllOfFilter` 및 ` AnyOfFilter ` 복합 필터 유형이 추가되었으며, 역할 이름을 별도의 인자로 받아들이도록 개선된 ` FunctionFilter `이 추가되었습니다.
- Qt.labs.qmlmodels import: TreeModel 에 insertRow() 및 moveRows() 메서드가 추가되었습니다.
- Qt Qml 컴파일러:
QQmlSA::FixSuggestion::hint(),QQmlSA::FixSuggestion::setHint()가 제거되었습니다.QQmlSA::FixSuggestion::fixDescription()는 QQmlSA::FixSuggestion::description()로 이름이 변경되었습니다.
Qt Quick 모듈
- Color QML 싱글톤이 추가되어 색상 조작을 위한 유틸리티 함수를 제공합니다.
- AnimatedImage type에 loops, finishBehavior 속성과 finished() 신호가 추가되었습니다.
- Text 유형은 이제
RichText모드에서 HTML 마크업을 통해 또는 C++ API의 QTextCharFormat 를 통해 적용할 수 있는 모든 QTextCharFormat::UnderlineStyle 값(예:DashUnderline,WaveUnderline,SpellCheckUnderline)을 올바르게 렌더링합니다. 이전에는 모든 밑줄 스타일이 실선으로 렌더링되었습니다. - ShapePath 유형에 strokeGradient 속성이 추가되었습니다.
- Rectangle::color 이제 QML에서 해당 속성에
undefined을 할당하여 기본값(흰색)으로 재설정할 수 있습니다. - Qt.labs.folderlistmodel 의 FolderListModel 유형에 showDot 및 showDotDot 속성이 추가되었습니다.
- QtQuick.VectorImage 의 VectorImage 유형에 asynchronous, status, retainWhileLoading 및 generatedItem 속성이 추가되었습니다.
Qt Quick Controls 모듈
QtQuick.Controls.Native스타일이 추가되었습니다.import QtQuick.Controls.Native은 컴파일 시점에 컴파일 대상 플랫폼에 가장 적합한 스타일을 선택합니다. 따라서 컴파일 시점 스타일 선택의 이점과 애플리케이션에 플랫폼별 룩앤필을 적용할 수 있는 가능성을 결합합니다.- ToolTip policy 속성이 추가되어 툴팁의 자동 표시 여부를 제어할 수 있게 되었습니다.
- ComboBox highlightOnHover 속성이 추가되었습니다.
- RangeSlider 두 핸들이 서로 교차하도록 허용하거나 방지하기 위한 ` crossingEnabled ` 속성이 추가되었습니다.
- Menu separatorsCollapsible 속성이 추가되었습니다.
- MenuItem 이제 연관된 Action 에서 키보드 단축키를 표시합니다.
- SearchField 이제 ` TextInput `가 비어 있는 경우 키를 사용하여 탐색할 수 있습니다.
- 편의를 위해 기존 TextField API 중 일부(selectTextByMouse, selectedText, selectionStart, selectionEnd, cursorPosition, select(), selectWord() 및 deselect())가 SearchField 에 추가되었습니다.
Qt Quick Dialogs 모듈
주목할 만한 변경 사항은 없습니다.
Qt Quick Effects 모듈
주목할 만한 변경 사항은 없습니다.
Qt Quick Test 모듈
- TestCase의 ` optional ` 속성은 Qt Quick Test에서 더 이상 사용되지 않습니다. 대신 skip()을 사용하십시오.
Qt Quick 3D 모듈
- 절차적 하늘을 렌더링하고 이미지 기반 조명 데이터를 생성하기 위한 SkyMaterial QML 유형이 추가되었습니다.
- QtQuick3D.Helpers 임포트에 QuadTextureProvider 가 추가되었습니다. 사용자 정의 프래그먼트 셰이더를 사용하여 쿼드 텍스처를 렌더링하는 데 사용되는 QML 유형입니다.
- Model GPU 인스턴싱을 사용할 때 수동으로 디테일 수준을 제어할 수 있는 instancingLodFactor 속성이 추가되었습니다.
- ExtendedSceneEnvironment 스크린 스페이스 반사를 더 정밀하게 제어할 수 있도록 ssrThickness 및 ssrMaxSteps 속성이 추가되었습니다.
- RuntimeLoader 동적으로 로드된 씬 내에서 이름이나 유형을 기준으로 오브젝트를 찾기 위한 ` query()` 및 ` queryAll()` 메서드가 추가되었습니다.
Qt Quick 3D XR 모듈
- 모노 뷰 구성(
XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO)을 지원하여, Qt Quick 3D XR 애플리케이션이 AR 안경과 같은 2D XR 기기에서 실행될 수 있도록 했습니다.
Qt Quick 3D Physics 모듈
- 물리적 바디를 제약하기 위한 다섯 가지 조인트 유형이 추가되었습니다: DistanceJoint, FixedJoint, PrismaticJoint, RevoluteJoint, SphericalJoint. 이들 모두는 공통 기본 유형인 PhysicsJoint 을 공유합니다.
Qt Remote Objects 모듈
- registryUrl 및 persistedStore 속성에는 이제 변경 알림 신호가 있습니다.
Qt SCXML 모듈
주목할 만한 변경 사항은 없습니다.
Qt Sensors 모듈
주목할 만한 변경 사항은 없습니다.
Qt Serial Port 모듈
주목할 만한 변경 사항은 없습니다.
Qt Spatial Audio 모듈
주목할 만한 변경 사항은 없습니다.
Qt Serial Bus 모듈
주목할 만한 변경 사항은 없습니다.
Qt SQL 모듈
주목할 만한 변경 사항은 없습니다.
Qt SVG 모듈
- QMovie 및 AnimatedImage 에서 이제 애니메이션 SVG 파일을 지원합니다.
Qt Labs StyleKit 모듈
- QWidget 애플리케이션에 StyleKit 기반 스타일을 적용하는 QStyle 의 서브클래스인 QStyleKitStyle 가 도입되었습니다.
- 이제 이 스타일은 RoundButton 및 MenuSeparator Qt Quick Controls 유형에 대한 구현을 제공하여, 일반적인 대체 방식을 대체합니다.
Qt TaskTree 모듈
- QtTaskTree::For 반복 횟수 매개변수로 `
qsizetype`를 받는 오버로드가 추가되었습니다. 이를 `For(RepeatInterator(n))`의 단축 형태로 사용할 수 있습니다. - QtTaskTree::Forever 이제 QtTaskTree::Group 로 암시적으로 변환됩니다.
- QtTaskTree::ListIterator QList 를 반환하는 게터 함수를 매개변수로 받는 오버로드가 추가되었습니다.
Qt Test 모듈
- 벤치마크 결과에는 이제 측정 백엔드(시간, CPU 틱, 이벤트, Valgrind) 전반의 분산 및 표준 편차가 포함됩니다.
- 일관성을 위해 일반 텍스트 벤치마크 로거가 이제 부동 소수점 결과를 과학적 표기법으로 포맷합니다.
- 명령줄에서 유효한 테스트 함수와 함께 존재하지 않는 테스트 함수가 지정된 경우에도, 유효한 테스트는 여전히 실행됩니다.
Qt Virtual Keyboard 모듈
주목할 만한 변경 사항은 없습니다.
Qt WebEngine 모듈
- QWebEngineNavigationRequest 사용자가 시작한 탐색과 프로그래밍 방식으로 시작된 탐색을 구분하기 위해 userInitiated 속성이 추가되었습니다.
- QWebEngineProfile PKCS#11 하드웨어 토큰의 잠금을 해제하기 위한 콜백을 제공하기 위해 setCryptoModulePasswordFunction()이 추가되었습니다.
Qt WebSockets Module
주목할 만한 변경 사항은 없습니다.
Qt PDF 모듈
- QPdfSearchModel 검색이 진행 중인지, 유휴 상태인지, 완료되었는지 여부를 추적하기 위해 status 속성과 Status 열거형이 추가되었습니다.
- QPdfView 이제 커서 위치를 중심으로 Control 키와 마우스 휠을 사용하여 확대/축소할 수 있습니다.
- render() 함수에 이미지 형식과 배경색을 지정하는 선택적 인수가 추가되었습니다.
Qt WebView 모듈
- WebView 모듈은 이제 Android, iOS, macOS 및 Windows에서 Qt 리소스 시스템(
qrc:/URL)의 콘텐츠를 불러올 수 있습니다.
Qt Widgets 모듈
- QTreeView QTreeView::itemDecorationRect() 메서드가 추가되어, 지정된 인덱스에 해당하는 장식(아이콘)의 경계 사각형을 반환합니다.
- QStyle::StandardPixmap 탭 바 스크롤 버튼을 위한 QStyle::SP_TabScrollLeftButton, QStyle::SP_TabScrollRightButton, QStyle::SP_TabScrollUpButton 및 QStyle::SP_TabScrollDownButton 가 추가되었습니다.
- QDialogButtonBox QDialogButtonBox::standardButtonText() 및 ()이 추가되어, 각각 의 텍스트와 단축키를 반환합니다. QDialogButtonBox::standardButtonShortcut QDialogButtonBox::StandardButton
- macOS에서 QMainWindow 의 통합 제목 및 툴바 모드가 배경 스타일링에 효과 뷰를 사용하도록 현대화되었습니다.
Qt XML 모듈
주목할 만한 변경 사항은 없습니다.
도구
Qt Assistant
- Qt Assistant 이제 어두운 색상 구성표가 활성화되었을 때 밝은 테마/어두운 테마 Qt SVG 다이어그램을 올바르게 렌더링하며, 이는 온라인 Qt 문서의 동작과 일치합니다.
QML 명령줄 도구
- qmllint에 모든 기본 경고 메시지를 억제하는 `
--only-explicit-categories` 옵션이 추가되었습니다. - 등록된 유형의 속성 및 메서드에서 사용되는 미등록 유형은 이제 qmltypes에 "opaque" 유형으로 기록됩니다. 이를 통해 툴링에서 발생하는 경고를 방지하고, qmlls에서 자동 완성 및 정의 위치로 이동 기능이 작동하도록 하며, 더 많은 곳에서 C++로 바인딩 컴파일을 수행할 수 있게 되었습니다.
- qmllint와 qmlls가 알 수 없는 유형에 대해 각 바인딩 및 사용 시마다 경고 메시지를 생성하는 대신, 한 번만 경고하도록 변경되었습니다.
- qmllint 및 qmlls 에 다음 사항에 대한 새로운 경고가 추가되었습니다.
- 가려진 QML 타입 멤버.
- 호환되지 않는 파일 선택 변형(선택적 적용).
- 재귀적으로 인스턴스화된 QML 유형.
- qmldir 또는
QT_QML_SOURCE_TYPENAME이름 대신 파일 이름으로 참조되는 QML 유형. - 1개 이상의 인자를 받는 `
new Array()` 오버로드의 자바스크립트 사용.
- QML Language Server 에 다음 기능을 추가했습니다:
- 코드 액션을 통해 컴포넌트를 로더로 감싸는 기능.
QML_FOREIGN를 통해 선언된 타입의 C++ 정의를 찾습니다.- QML 유형 정보의 백그라운드 재구축 중 진행 상황을 표시합니다.
QDoc 문서 생성기
- C++20 개념: 새로운 \concept topic 명령어는 C++20 컨셉에 대한 전용 참조 페이지를 생성하며, 여기에는 해당 컨셉에 의해 제약되는 문서화된 유형 및 함수 목록이 포함됩니다. C++ 개요의 컨셉 참조는 HTML 및 DocBook 출력 모두에서 이러한 페이지로 연결되며, 컨셉(예: `
template <Integral T>`)에 의해 직접 제약되는 템플릿 매개변수는 `typename` 키워드 대신 컨셉 이름을 표시합니다. 컨셉 링크는 `.index` 파일을 통해 모듈 경계를 넘어 작동합니다. enable_if- 기반 SFINAE 제약 조건은 불투명한 이름 없는 부울 템플릿 매개변수 대신 가독성 높은requires절로 렌더링되며, 이는 Qt 6.11에서 도입된 C++20 requires 절 지원을 확장한 것입니다. 함수에 명시적인requires절이 함께 있는 경우, 두 절이 결합됩니다.- 명시적으로 기본값이 지정되거나 삭제된 함수는 시놉시스에서
[default]및[delete]태그를 가지며, 컴파일러가 생성한 특수 멤버 함수는[implicit]태그가 붙습니다. 이러한 태그는 cppreference.com으로 연결됩니다. \fn 블록이 없는 경우, QDoc은 경고 없이 문서를 자동 생성합니다. 명시적인 문서는 생성된 텍스트를 덮어쓰며, showautogenerateddocs 구성 변수를false로 설정하면 출력에서 해당 문서가 생략됩니다. - QDoc은 숨겨진 프렌드(인수 의존적 조회를 통해서만 찾을 수 있는 프렌드 함수)와 단순히 접근 권한만 부여하는 프렌드 선언을 구분합니다. 인라인 외부에서 정의된 것을 포함하여 숨겨진 프렌드는, 클래스 한정 이름을 사용하는 대신
\fn operator==(const MyClass &, const MyClass &)와 같은 자연스러운 자유 함수 구문을 사용하여 문서화하십시오. - 통합된 표가 \compares 및 \compareswith 명령어로 생성된 산발적인 비교 문서 단락들을 대체하여, 클래스가 어떤 유형과 비교하는지, 그리고 각 관계에 어떤 비교 범주가 적용되는지 한눈에 확인할 수 있게 해줍니다.
- 이제 \a 명령은 이제 템플릿 매개변수 이름을 유효성 검사합니다. QDoc은 클래스 및 유형 별칭 내의 문서화되지 않은 템플릿 매개변수와, 함수 내의 문서화되지 않은 비유형 또는 템플릿-템플릿 매개변수에 대해 경고를 표시합니다.
- `status` \preliminary 명령어로 생성된 상태 설명자와 메시지를 예비 구성 변수를 사용하여 사용자 정의할 수 있으며, 이를 통해 기본값 대신 "Technology Preview"와 같은 용어를 사용할 수 있습니다. 상태 명령어의 우선순위는 일관되게 적용됩니다. 즉,
\preliminary는\modulestate보다 우선하며,\internal는 두 가지 모두보다 우선합니다. - "
\module" 또는 "\qmlmodule" 토픽에 설정된 상태(예: "\preliminary" 또는 "\deprecated")는 구성원이 자체 상태를 설정하지 않는 한 모듈의 구성원에게 전파됩니다. - 새로운 \qmluncreatabletype topic 명령어는 QML 유형 시스템에 등록되어 있지만 인스턴스화할 수 없는 QML 유형을 문서화합니다. 또한 QDoc은
QML_UNCREATABLE매크로로 주석이 달린 유형을 자동으로 감지합니다. - 부속 속성, 신호 및 메서드는 "모든 멤버" 페이지뿐만 아니라 주요 QML 참조 페이지에도 주석이 달립니다.
- `topic` \qmlmethod 명령어는 완전한 시그니처를 필요로 하며, 반환 유형이 누락되었거나 매개변수 목록을 파싱할 수 없는 경우 QDoc이 경고를 표시합니다.
- 클래스 문서의 Include 문은 Clang이 보고한 실제 헤더 파일 이름을 반영합니다. Qt 스타일의 편의 헤더(예:
<QString>)를 사용하는 프로젝트는 계속해서 자동으로 작동합니다. - 각 프로젝트는 기본 출력 디렉터리에 하나의
.index파일을 갖게 되며, 이는 형식별 하위 디렉터리에 있는 형식별 사본을 대체합니다. indexes 구성 변수의 상대 경로는 다른 경로 변수와 일관되게.qdocconf파일의 위치를 기준으로 해결됩니다. - 생성된 HTML 파일에는 페이지 유형(클래스, QML 유형, 모듈, 예제 등)에 기반한 자동
<meta name="keywords">항목이 포함되어, 후처리 및 사이트맵 생성을 용이하게 합니다. 코드 블록에는 highlight.js 구문 강조 표시와 호환되는 태그가 적용됩니다. - 문서 작성에 대한 사소한 개선 사항: \meta
qdoc-suppress-inheritance문서화 목적으로만 기본 클래스를 상속하는 타입의 경우 "Inherits:" 행을 숨기려면 다음을 사용하십시오; \list 0 이하인 시작 값을 허용합니다;\#는\l링크 대상에서 리터럴#문자를 나타냅니다; 그리고 \details 문서에 명시된 중괄호로 구분된 요약 인수를 강제 적용합니다. - LLVM/Clang 22 호환성을 추가했습니다.
Qt Linguist
- lupdate는 이제
.ts파일의 기존 줄 끝 기호를 유지합니다. Windows에서 CRLF 줄 끝 기호를 사용하는 파일은 CRLF로 그 자리에서 업데이트되며, LF 줄 끝 기호를 사용하는 파일과 새로 생성된 파일은 LF를 유지합니다. - Qt Linguist 원할 경우 온라인 웹 문서를 사용할 수 있는 새로운 옵션 -web-help가 추가되었습니다.
Resource Compiler (rcc)
- rcc는 이제 콘텐츠 기반 SHA256 해싱을 사용하여 리소스 데이터의 중복을 제거합니다. Qt 리소스 컬렉션에 포함된 동일한 파일은 한 번만 저장되므로, 애플리케이션 소스 코드를 변경하지 않고도 컴파일된 리소스의 크기를 줄일 수 있습니다.
플랫폼 변경 사항
빌드 시스템 변경 사항
Qt 빌드
- 이제 Qt를 빌드하려면 CMake 3.25 이상이 필요합니다.
- C++ 런타임 라이브러리를 정적으로 링크하기 위해
static_compiler_runtimeCMake 기능이 추가되었습니다. Windows(MSVC)에서는 하이브리드 CRT 방식을 사용하여 Visual C++ 재배포 가능 패키지에 대한 의존성을 제거합니다. - Android용 Qt 빌드 시, Qt JAR 타깃에 대해
javac를 직접 호출하는 대신 Gradle을 사용하게 되었습니다.
CMake API
- Qt를 사용하려면 이제 CMake 3.25 이상이 필요합니다.
- 다음 CMake API는 기술 미리보기(Technology Preview) 단계에서 벗어나 이제 완전히 지원됩니다: qt_finalize_project(), qt_extract_metatypes(), qt_deploy_translations(), QT_TARGETS_FOLDER, QT_RESOURCE_PREFIX, QT_DEPLOY_SUPPORT 및 QT_ENABLE_VERBOSE_DEPLOYMENT.
qt_no_entrypoint타겟 속성의 이름이 QT_NO_ENTRYPOINT로 변경되었습니다. 하위 호환성을 위해 기존 이름도 여전히 인식됩니다.QTP0006CMake 정책이 추가되었습니다. 이 정책이NEW로 설정되면, qt_generate_wayland_protocol_client_sources() 및 qt_generate_wayland_protocol_server_sources()는PUBLIC_CODE대신PRIVATE_CODE를 기본값으로 사용합니다.- qt_add_shaders() 의 진행 상황 메시지가 이제
NOTICE대신DEBUG수준으로 기록되어, 기본 빌드 출력에서 해당 메시지가 표시되지 않습니다. 이전 동작을 복원하려면 CMake에--log-level=NOTICE를 전달하십시오. - qt_add_qml_module() 에
NO_GENERATE_QTCONF옵션이 추가되어, 빌드 디렉터리에서qt.conf의 자동 생성을 억제할 수 있게 되었습니다. - 이제 빌드 시스템은 QML 모듈이 포함된 각 실행 파일에 대해 <exe>_qmlpreview 타깃을 제공합니다. 해당 타깃을 "빌드"하면, 빌드 시스템은 올바른 인수를 사용하여 qmlpreview 유틸리티를 실행하며, 이를 통해 실행 파일을 QML로 미리 볼 수 있습니다. 특히 .qrc 파일 경로를 자동으로 해결합니다.
- QT_WINDOWS_APP_PROJECT_IDENTIFIER 및 QT_WINDOWS_APP_PROJECT_EXECUTION_LEVEL이라는 두 가지 새로운 타깃 값을 사용할 수 있게 되었습니다. 아래의 Windows 섹션도 참조하십시오.
데스크톱 플랫폼
Windows
- 이제 CMake 프로젝트는 qt_add_executable()을 사용하여 빌드된 Windows 실행 파일에 대한 애플리케이션 매니페스트를 자동으로 생성하고 포함합니다. 이 매니페스트는 Windows 10/11 호환성을 선언하고, 긴 경로 처리를 지원하며, UAC 실행 수준을 구성합니다. 생성된 매니페스트를 제어하는 두 가지 새로운 CMake 타깃 속성이 추가되었습니다. QT_WINDOWS_APP_PROJECT_IDENTIFIER는 어셈블리 식별자 이름을 설정하고, QT_WINDOWS_APP_PROJECT_EXECUTION_LEVEL은 실행 수준을 설정합니다. 자세한 내용은 Qt for Windows - 배포를 참조하십시오.
- windeployqt에는 Windows Store appx 패키지로 패키징하기에 적합한
AppxManifest.xml를 생성하기 위한--appx및--appx-certificate옵션이 추가되었습니다. - QOperatingSystemVersion::Windows11_25H2 (10.0.26200)이 명명된 OS 버전 상수로 추가되었습니다.
- Windows에서 플랫폼 플러그인은 이제 항상 sRGB를 보고하는 대신,
ColorProfileGetDisplayDefault를 통해 각 화면의 ICC 프로필에서 색 공간을 파생합니다. - DirectWrite 글꼴 백엔드는 이제 각 글꼴의 GASP 테이블을 읽어 글꼴 및 포인트 크기에 따라 적절한 앤티앨리어싱 전략을 선택하여, 글꼴 디자이너의 의도를 더 정확하게 반영합니다.
- 현재 Intel GPU 드라이버에서 셰이더 디스크 캐시가 다시 활성화되었습니다. 지난 몇 년간 Windows의 Intel 그래픽에서는 이 기능이 무조건 비활성화되어 있었으나, 이제 드라이버 버전 확인이 대신 사용되어 최신 Intel 하드웨어에서 Qt Quick 3D 의 성능이 향상되었습니다.
- QWizard 시스템이 다크 모드일 때 Aero 마법사 스타일이 더 이상 적용되지 않습니다. 다크 모드에서는 이 스타일이 올바르게 렌더링되지 않기 때문입니다.
- Visual Studio 2026에서ARM64EC가 이제 완전히 지원됩니다. 설치 프로그램 패키지는 제공되지 않습니다. Qt WebEngine, WebView, Qt Quick 3D Physics 와 같은 일부 모듈은 지원되지 않습니다.
Linux
- QDesktopServices::openUrl()는 이제
org.freedesktop.portal.OpenURIXDG 데스크톱 포털 서비스가 사용 가능한 경우,xdg-open및 기타 대체 옵션보다 이를 우선적으로 사용합니다. 이 포털은 이전에 사용하던 애플리케이션과는 다르게 작동할 수 있습니다. - 포털을 사용할 수 없을 때 사용되는 대체 옵션이 업데이트되었습니다. 이제 Plasma 6의
kde-open이 인식되는 반면, KDE 3 시대의kfmclient에 대한 지원은 중단되었습니다. - 새로운 motionPreference 속성은 데스크톱 설정에서 값을 가져옵니다. 즉,
org.freedesktop.appearance포털 네임스페이스의reduced-motion키와 GNOME의org.gnome.desktop.interfaceenable-animations설정에서 값을 반영합니다. - 이제 기본 GTK3 글꼴 대화 상자는 확장 가능/비확장 가능 글꼴 및 고정폭/비례폭 글꼴에 대해 QFontDialog 글꼴 필터링 옵션을 반영합니다.
- AT-SPI 접근성 브릿지는 이제 확장된 상태 및 확장 가능한 상태의 변경 사항을 보조 기술에 알립니다.
- fontconfig 2.17.1 이상에서 실행할 때 Qt 리소스에서 추가된 글꼴이 다시 올바르게 등록됩니다.
- X11에서 툴팁 창이 표시될 때마다 다시 생성되지 않습니다.
- QNetworkProxy 이제 libproxy 백엔드를 사용할 때
*_PROXY환경 변수의socks5h체계를 인식합니다.
macOS
- QScreen::grabWindow()는 이제 더 이상 사용되지 않는
CGDisplayCreateImageForRect대신 ScreenCaptureKit을 사용합니다. API를 처음 사용할 때 권한 요청 메시지가 표시됩니다. - QWindows 플립되지 않은
NSView에 부모로 추가된 는 슈퍼뷰의 크기가 조정될 때 슈퍼뷰의 왼쪽 상단 모서리를 기준으로 상대적인 위치를 유지합니다. QCocoaNativeInterface::setEmbeddedInForeignView()Qt 뷰 계층 구조를 외부NSView에 삽입하기 위해 더 이상 필요하지 않으며 지원되지도 않습니다. Qt가 이제 이를 자동으로 관리합니다.- 정적 Qt 빌드를 기반으로 빌드된 샌드박스 앱은 이제 Apple 플랫폼에서 기본적으로 재배치 가능합니다.
- QMainWindow'의 통합 제목 및 툴바 모드는 이제 더 이상 사용되지 않는 텍스처 처리된
NSWindow스타일 대신 Qt::ExpandedClientAreaHint 및 Qt::NoTitleBarBackgroundHint 을 통해 구현됩니다. - QStandardPaths::standardLocations()는 이제
ConfigLocation,GenericConfigLocation및AppConfigLocation에 대해 시스템 전체의/Library/Preferences디렉터리를 포함합니다.
Linux의 Wayland 클라이언트
- 세션 복원을 위한
XdgSessionManagerWayland 프로토콜 확장에 대한 지원이 추가되었습니다. - 이제 bradient 클라이언트 측 장식 테마에서 최소화, 최대화 및 닫기 버튼 힌트가 표시됩니다.
Wayland 컴포지터
linux-dmabuf-v1안정 버전 프로토콜(버전 4)에 대한 지원이 추가되었습니다. 이를 사용하려면 클라이언트 버퍼 통합으로 "linux-dmabuf-v1"을 선택하십시오. 호환성을 위해 이전 구현(버전 3)은 "linux-dmabuf-unstable-v1"이라는 이름으로 계속 사용할 수 있습니다.
HarmonyOS
Qt 6.12에서는 HarmonyOS (OpenHarmony API 레벨 23, HarmonyOS 6.1.0)에 대한 지원을 테크놀로지 프리뷰(Technology Preview) 형태로 도입했습니다. Vulkan은 지원되지만, 접근성 및 EmbeddedUIExtensionAbility 기능은 아직 사용할 수 없습니다.
HarmonyOS에서 Qt 애플리케이션을 빌드하고 배포하는 데 도움이 되도록 다음과 같은 도구와 CMake 함수가 제공됩니다:
- harmonydeployqt는 Qt 애플리케이션을 HarmonyOS 애플리케이션 패키지(HAP)로 패키징하고, 필요한 Qt 라이브러리와 플러그인을 복사하며,
build-profile.json5및module.json5메타데이터를 생성하고, HAP 서명 구성의 임베딩을 지원합니다. harmonyostestrunnerctest에서 트리거되는 를 통해 연결된 HarmonyOS 기기 또는 에뮬레이터에서 Qt 자동 테스트를 실행합니다.hdc- qt_add_harmonyos_permission()은 애플리케이션에 필요한 HarmonyOS 권한을 선언합니다.
HarmonyOS 배포와 관련된 주요 CMake 타깃 속성은 다음과 같습니다:
- QT_HARMONYOS_EXTRA_LIBS — HAP에 번들로 포함할 추가 공유 라이브러리.
- QT_HARMONYOS_EXTRA_PLUGINS — 배포할 추가 Qt 플러그인입니다.
- QT_HARMONYOS_PACKAGE_SOURCE_DIR — HAP 빌드 전에 생성된 HarmonyOS 프로젝트 템플릿에 내용이 병합되는 디렉터리입니다.
알려진 플랫폼 제한 사항의 전체 목록은 Qt for HarmonyOS 플랫폼 제한 사항 위키 페이지를 참조하십시오.
모바일 플랫폼
Android
안드로이드용 Qt
- Gradle을 9.5.1로, Android Gradle 플러그인을 9.2.1로 업데이트했습니다.
- 기본 대상 SDK 버전을 Android 17(API 레벨 37)로 업데이트했습니다.
- Android 13 이상에서 예측형 뒤로 가기 제스처에 대한 지원을 추가했습니다. Qt는 `
OnBackInvokedCallback`를 통해 뒤로 가기 이벤트를 전달하며, 기본적으로 `android:enableOnBackInvokedCallback` 매니페스트 속성을 활성화합니다. - QT_ANDROID_GRADLE_MULTI_MODULE로 활성화되는 Gradle 멀티 모듈 빌드 지원을 추가했습니다. 이는 Play Feature Delivery의 기반이 됩니다. CMake는 androiddeployqt나 타사 도구 없이 전체 배포 파이프라인을 처리하므로 빌드가 더 빠르고 간단해집니다.
- QT_ANDROID_GRADLE_MULTI_MODULE를 사용하기 위해
QT_USE_ANDROID_MODERN_BUNDLECMake 변수를 더 이상 사용하지 않습니다. 하위 호환성을 위해 기존 이름은 여전히 인식됩니다. - Qt::InputMethodHint::ImhNoFullscreen, ImhDecimalNumbersOnly 및 ImhNoEditMenu 입력 방식 힌트에 대한 지원이 추가되었습니다.
- 이제 뒤로 가기 키를 누르면 애플리케이션이 종료되지 않고 백그라운드로 이동합니다. 자세한 내용은 ‘뒤로 가기 키 및 뒤로 가기 제스처’를 참조하십시오.
- TalkBack에 대한 접근성 개선 사항:
- Qt가 이제
ACTION_SHOW_ON_SCREEN동작에 반응합니다. - Qt는 이제 스크롤된 뷰포트 및 스크롤 위치 변경 사항을 보고합니다.
- Qt는 이제 확장 가능(expandable) 및 확장됨(expanded) 상태를 지원합니다.
- 접근성 포커스가 텍스트 입력 필드로 이동할 때 더 이상 소프트 키보드가 열리지 않습니다.
- motionPreference 힌트가 이제 시스템의 ‘ Remove animations ’ 설정을 반영합니다.
- Qt가 이제
- androidtestrunner는 이제
--serial및--output옵션을 인식하고, 테스트 실행 중 기기 연결이 끊어진 것을 감지하며, 개선된 충돌 및 애플리케이션 응답 없음(ANR) 진단 정보를 출력합니다. - Qt는 이제 번들된 FFmpeg 빌드에 OpenSSL 라이브러리가 필요한 경우,
OPENSSL_ROOT_DIR또는 vcpkg를 통해 해당 라이브러리를 찾아 자동으로 배포합니다. - Gradle 템플릿은 더 이상
resConfig "en"를 강제하지 않습니다.
Qt Quick Android용
iOS
- QStandardPaths::PublicShareLocation 이제 Documents 디렉터리 내의 이전에 생성된 경로 대신
<APPROOT>/Public(NSSharedPublicDirectory와 일치)를 반환합니다. - standardLocations(
PicturesLocation)에는 더 이상 쓰기 가능한 Documents/Pictures 경로에 대한 중복 항목이 포함되어 있지 않습니다. - QStandardPaths::TemplatesLocation 이제 기존 문서와 일치하도록 iOS에서는 지원되지 않는다고 올바르게 표시됩니다.
임베디드 플랫폼
Boot to Qt 및 Qt Onboard
- Qt 6.12 LTS부터, Qt Online Installer 또는 Qt 계정을 통해 미리 빌드된 Boot to Qt 이미지를 더 이상 다운로드할 수 없습니다.
바이너리 대신, 두 가지 컨테이너 기반의 배포물이 도입되었습니다:
- 빌드 컨테이너: 필요한 모든 빌드 도구가 미리 설치된 즉시 사용 가능한 환경으로, 대상 하드웨어용 Yocto 기반 리눅스 이미지를 신속하게 빌드할 수 있게 해줍니다.
- 데모 컨테이너: Qt Demo Launcher와 함께, Qt의 기능을 바로 체험할 수 있도록 선별된 데모 세트가 포함되어 있습니다.
이 컨테이너들은 Qt 6.12 LTS 패치 릴리스 주기 동안 단계적으로 도입되며, Qt 6.12.4 릴리스에 앞서 완전한 컨테이너 기반 배포 체계가 구축될 예정입니다.
- 새로운 플랫폼:
- Orange Pi 2
- NXP i.MX95
- Qualcomm Dragonwing IQ6
- 퀄컴 드래곤윙 IQ9
- Renesas RZ/G3E
실시간 운영 체제
QNX
- QNX에서 Vulkan 지원이 추가되었습니다.
- Qt Multimedia 이제 QNX 8.0에서 빌드됩니다. QNX SDP 8.0용 오디오 백엔드가 아직 구현되지 않아 오디오 재생 및 녹음 기능은 아직 사용할 수 없습니다.
VxWorks
- VxWorks 26.03 지원이 추가되었습니다.
WebAssembly
- QAudioSource 및 QAudioSink 는 이제 OpenAL 대신 Web Audio API AudioWorklets 백엔드를 사용하여 브라우저 네이티브의 저지연 오디오 캡처를 지원합니다.
- 이제 다음을 사용할 때 제로 카피 렌더링을 위해
texImage2D를 사용하여 비디오 프레임이 WebGL로 업로드됩니다. Qt Quick. - QCameraFormat 지원이 추가되었습니다.
API 변경 사항 목록
이 페이지에는 Qt 6.12의 API 변경 사항에 대한 개요가 포함되어 있습니다:
알려진 문제
Qt 6.12의 알려진 문제에 대한 정보는 Qt 위키를 참조하십시오.
© 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.