Qt 6.9의 새로운 기능

Qt 6.9의 새로운 기능

Qt Core 모듈

  • QString::arg()는 이제 UTF-8 (QUtf8StringView) 및 QAnyStringView 인자를 지원합니다. 이제 arg()에 C 문자열 리터럴이나 QByteArrays를 전달하면 더 이상 암시적으로 QString 로 먼저 변환되지 않습니다.
  • QAnyStringView 그리고 QUtf8StringView 에는 이제 QStringViewQLatin1StringView 과 같이 (다중)arg()이 있습니다. 또한 QString 버전과 같이 QUtf8StringViewQAnyStringView 인자도 지원합니다.
  • QJniArray 이제 고정된 크기의 빈 배열을 생성할 수 있으며, 컨스트가 아닌 이터레이터를 사용하여 배열의 값을 변경하거나 operator[]
  • QLocale::uiLanguages()는 이제 이름의 후반 구성 요소를 제거하여 얻은 폴백 항목을 포함합니다. 이러한 잘림을 직접 수행해 온 호출자는 이제 QLocale 이 올바른 시도 항목과 올바른 순서를 알고 있다고 믿어도 좋습니다.
  • QLocale::bcp47Name()는 이제 일반 "en"과 구별하고 BCP47 사양에 더 잘 부합하도록 C 로캘을 "en-POSIX"로 나타냅니다. 변형 POSIX도 이제 그 이름에서 C 로캘을 의미하는 것으로 인식됩니다.
  • QTimeZone::abbreviation()는 이제 전체 이름이 아닌 약어를 반환합니다.
  • QTimeZone::displayName()는 이제 모든 플랫폼에서 실제로 로캘에 적합한 영역 이름을 제공해야 하는데, 이전에는 일부 플랫폼에서 이를 지원하지 못했습니다.
  • 시간대 부분이 포함된 타임스탬프 문자열을 QDateTime 로 변환하면 이제 영역의 긴 형식 표시 이름이 인식됩니다.
  • QMetaEnum QFlags 은 이제 최대 64비트가 필요한 유형을 지원할 수 있습니다.
  • QJsonValue 이제 QJsonDocument 을 거치지 않고 fromJsontoJson 을 사용하여 직접 JSON 을 구문 분석하고 직렬화할 수 있습니다. 따라서 문자열이나 숫자와 같은 원시 값은 물론 복합 값도 구문 분석하고 직렬화할 수 있습니다.
  • QThread 새로운 setServiceLevel 함수를 사용하여 OS 스레드 서비스 품질 힌트를 설정할 수 있는 기능이 추가되었습니다.
  • QThreadPool setServiceLevel 를 사용하여 스레드의 서비스 품질 수준을 설정할 수도 있습니다.
  • QFile::supportsMoveToTrash()는 현재 운영 체제에서 QFile::moveToTrash()가 구현되어 있는지 여부를 보고합니다.
  • QIODevice::readLineInto()는 미리 할당된 버퍼로 한 줄의 데이터를 읽을 수 있습니다.
  • 새로운 Q_STATIC_LOGGING_CATEGORY 매크로를 사용하여 단일 번역 단위에서만 사용되는 로깅 카테고리를 선언하세요.
  • 새로운 QSortFilterProxyModel::beginFilterChange() 메서드를 호출하여 필터링된 콘텐츠의 변경 사항이 올바르게 인식되는지 확인하세요.
  • QTimerEvent::matches() 메서드를 사용하면 타이머 이벤트가 특정 QBasicTimer 에 속하는지 여부를 더 쉽게 테스트할 수 있습니다.
  • QUuid::createUuidV7()를 사용하면 RFC9562에 기반한 고유 식별자를 만들 수 있습니다.
  • QCommandLineParser::showMessageAndExit()는 애플리케이션을 종료하기 전에 사용자에게 정보 또는 오류 메시지를 표시하는 편리한 방법을 제공합니다.
  • QHash 표준 라이브러리의 각 API와 일치하도록 tryEmplaceinsertOrAssign API를 가져왔습니다.
  • QSpan 이제 chopslice 가변 크기 스팬을 사용할 수 있습니다.

Qt Graphs 모듈

  • QtQuick3D 의 순서 독립적 투명도를 활용하여 Surface3D 에 투명도 지원을 추가했습니다. 지금까지 QtQuick3D 에는 대략적인 기법(WeightedBlended)만 구현되었기 때문에 아직 정확한 기법은 사용할 수 없습니다.
  • QtQuick3D 애플리케이션에서 View3D 에 그래프를 삽입할 수 있도록 rootNode 을 추가했습니다.
  • View3D 그래프 주입과 함께 사용할 수 있는 또 다른 피킹 메서드인 doRayPicking을 추가했습니다.
  • 사용자가 데이터를 스플라인으로 렌더링할 수 있도록 QSpline3DSeries 클래스를 추가했습니다.
  • Bars3DvalueColoringEnabled 속성을 추가하여 각 막대의 색상을 값에 따라 개별적으로 지정할 수 있습니다.
  • QAbstract3DAxisscaleLabelsByCount 속성을 추가하여 사용자가 총 레이블 양에 따라 축 레이블의 크기를 조정할지 여부를 정의할 수 있도록 했습니다.
  • QAbstract3DAxislabelSize 속성을 추가하여 사용자가 각 축별로 축 레이블의 크기를 설정할 수 있도록 했습니다.
  • Bars3D, Scatter3D, Surface3D 에 X 및 Y 방향의 최소 및 최대 회전 설정에 대한 지원을 추가했습니다.
  • QAbstractAxisalignment 속성을 추가하여 사용자가 축을 왼쪽, 오른쪽, 위쪽 또는 아래쪽으로 정렬할 수 있도록 했습니다.
  • 사용자가 그래프가 그려질 직사각형을 정의할 수 있도록 QGraphsView에 plotArea 속성을 추가했습니다.
  • QGraphsView에 확대/축소 및 패닝 지원을 추가했습니다.
  • 면적, 선, 파이, 스캐터 그래프에 사용자 지정 입력 처리 지원을 추가했습니다.

Qt GRPC 모듈

  • Qt GRPC 클라이언트 가이드 개요 예제를 추가했습니다.
  • 모든 문서와 예제를 개선하고 다듬었습니다.
  • 부하가 높은 상황에서 쓰기를 위해 스트리밍 RPC를 최적화했습니다.

Qt GUI 모듈

  • QBrushQPen 에 색상 및 스타일 값과 비교하거나 할당하는 데 최적화된 연산자를 추가했습니다.
  • QPainter::setBrush()에는 색상을 단색 브러시로 설정하는 데 최적화된 새로운 오버로드가 추가되었습니다.
  • QPainterStateGuardQPainter 에서 균형 잡힌 저장/복원 작업을 보장하는 새로운 RAII 클래스입니다.
  • QColorSpace 네 가지 기본 색 공간 포인트를 설정하고 가져오는 API가 추가되었습니다.
  • 창의 클라이언트 영역이 창의 제목 표시줄 컨트롤이나 다른 시스템 UI와 같은 다른 UI 요소에 가려지거나 충돌할 수 있는 영역으로 확장되도록 요청하는 Qt::ExpandedClientAreaHint 을 추가했습니다.
  • 창의 제목 표시줄이 배경색 없이 그려지도록 요청하는 Qt::NoTitleBarBackgroundHint 을 추가했습니다.
  • 창의 안전 영역을 반영하기 위해 QWindow::safeAreaMargins()를 추가했습니다.
  • 텍스트의 이모티콘 시퀀스를 파싱하고 자동으로 감지하여 유니코드 사양에 따라 필요할 때 컬러 글꼴을 사용할 수 있도록 하는 기능을 추가했습니다. 이 파서는 QTextOption::DisableEmojiParsing 를 사용하여 레이아웃별로 비활성화하거나 Qt XML을 구성할 때 이모티콘 세그멘터를 비활성화하여 비활성화할 수 있습니다.
  • 애플리케이션에서 사용하는 기본 이모티콘 글꼴을 사용자 지정하기 위한 QFontDatabase::addApplicationEmojiFontFamily() 및 관련 함수가 추가되었습니다.
  • 글꼴이 지원하는 가변 축에 대한 정보를 검색하기 위한 QFontInfo::variableAxes()를 추가했습니다.
  • QImage::flipped() 및 QImage::flip()는 이미지 뒤집기를 위한 Qt::Orientation 기반 API를 제공하여 bool 기반 QImage::mirrored() 대안보다 코드를 더 쉽게 읽을 수 있습니다.
  • QRhi지원되는 모바일 GPU에서 OpenGL ES로 실행할 때는 가능한 경우 GL_EXT_multisampled_render_to_texture가 사용됩니다. Qt QuickQt Quick 3D와 같은 클라이언트의 경우 타일형 GPU 아키텍처에서 멀티샘플링 렌더링에서 상당한 성능 향상을 가져올 수 있습니다.
  • QRhi: Direct 3D 11 및 12가 설치된 Windows에서는 이제 QWindow 업데이트 요청이 전용 vblank 감시자 스레드에 의해 처리되어 CPU 부하와 지연 시간이 줄어듭니다. 따라서 Qt Quick 같은 클라이언트에서 마우스나 터치로 항목을 인터랙티브하게 드래그할 때 지연이 줄어들 것으로 예상됩니다.
  • QRhi: 해당되는 경우 가변 비율 셰이딩에 대한 지원이 추가되었습니다(Direct 3D 12, 벌칸, 메탈). 이를 통해 비전OS의 Qt Quick 3D XR에서 동적 포비에이션을 지원할 수 있습니다.
  • QRhi: 렌더링 타깃별 블렌딩이 이제 OpenGL에서도 선택적으로 지원됩니다.
  • QRhi: 다양한 정수 및 뎁스 텍스처 포맷에 대한 지원이 추가되었습니다.
  • QRhi: 벌칸에서 애플리케이션 제공 대기/신호 세마포어를 전달할 수 있는 지원이 추가되었습니다. 이러한 세마포어는 vkQueueSubmit 및 Present로 전달되어 다중 스레드에 의존하고 시나리오 그래프 렌더러와 적절한 동기화가 필요한 외부 렌더링/계산 엔진의 통합을 가능하게 합니다.
  • QPdfWriter::author() 속성을 사용하여 생성된 PDF 문서의 작성자를 설정할 수 있습니다.

Qt HttpServer 모듈

Qt Multimedia 모듈

Qt Network 모듈

Qt Network 인증 모듈

Qt Protobuf 모듈

  • 모든 문서를 개선하고 다듬었습니다.
  • 생성된 헤더 파일을 보호하는 데 사용되는 메커니즘을 지정하는 HEADER_GUARD 옵션이 추가되었습니다.
  • 사용자 정의 프로토뷰 직렬화기에 액세스할 때 안전성과 성능을 맞바꾸기 위해 protobuf-unsafe-registry 기능을 추가했습니다.

Qt QML 모듈

  • QML Language Server 은 이제 문서 구조의 개요 보기를 제공합니다. 이를 통해 클라이언트(예: IDE 또는 코드 편집기)는 qml 문서의 구조를 대화형 개요로 표시하여 객체, 속성, 메서드 및 기타 코드 요소를 계층적 보기로 표시할 수 있습니다.
  • qmlformat에 최대 줄 길이 기능 추가: 이제 최대 허용 줄 길이에 따라 줄을 끊을 위치를 제어하여 일관되고 가독성 있는 QML 문서를 만들 수 있습니다.

Qt Quick 모듈

  • 항목 또는 창의 안전 영역을 관리하기 위해 SafeArea 첨부 속성을 추가했습니다.
  • 항목에 전단 변환을 편리하게 적용할 수 있는 전단 컴포넌트를 추가했습니다.
  • 이전에는 Qt Quick API에 없던 FontMetrics::capitalHeight 프로퍼티를 추가했습니다.
  • C++의 QFontInfo 클래스와 일치하는 글꼴 해상도 결과를 검색할 수 있는 FontInfo 유형을 추가했습니다.
  • 사용 중인 그래픽 API가 OpenGL인 경우 QQuickPaintedItem 의 FramebufferObject 렌더링 모드에 대한 지원을 다시 도입했습니다. 이 모드는 QQuickPaintedItems에 QPainter 의 레거시 OpenGL 페인트 엔진을 사용해야 하는 Qt 5 시대 애플리케이션을 위한 포팅 지원으로 제공됩니다.
  • 지오메트리가 큰 씬에서 메모리 사용량이 급증하지 않도록 시나리오 렌더러의 버퍼 풀링 로직이 최적화되었습니다. 또한 특히 OpenGL로 실행할 때 아이템이 많은 씬의 오버헤드가 감소했습니다.

Qt Quick Controls 모듈

  • ContextMenu 을 추가했습니다. 마우스 오른쪽 버튼 클릭이나 컨텍스트 메뉴 키와 같은 플랫폼별 이벤트에 따라 컨텍스트 메뉴를 표시하기 위해 모든 항목에 이 모듈을 첨부할 수 있습니다.
  • TextFieldTextArea 은 이제 기본적으로 ContextMenu 을 제공합니다. 이러한 유형에 대한 사용자 정의 컨텍스트 메뉴가 이미 있는 경우 오른쪽 클릭 또는 컨텍스트 메뉴 키를 누르면 ContextMenu 이 자체적으로 열리지 않습니다.

Qt Quick 효과 모듈

  • 빠른 둥근 직사각형 모양의 그림자/광선을 위한 RectangularShadow 요소가 새로 추가되었습니다. API는 색상, 오프셋, 퍼짐 및 흐림 값과 함께 CSS 상자 그림자와 유사합니다.

Qt Quick 3D 모듈

  • 투명한 오브젝트 렌더링을 위한 가중 혼합 순서 독립 투명도(OIT) 구현이 추가되었습니다.
  • 32비트 부호 없는 정수 텍스처 포맷에 대한 지원이 추가되었습니다.
  • 인스턴싱 모델의 섀도 맵 바운드에 대한 제어가 개선되어 계산 비용이 높아질 때 성능이 향상될 수 있습니다.
  • 새로운 '울트라' 해상도 설정으로 4K 섀도맵을 지원합니다.
  • GLSL ES 프래그먼트 셰이더에서 플로트에 중간 정밀도를 강제 적용하는 옵션이 추가되었습니다. 주로 성능 튜닝을 위한 툴로 제공됩니다. 환경 변수 QT_QUICK3D_MEDIUM_PRECISION을 0이 아닌 값으로 설정합니다. 다른 종류의 셰이더에는 영향을 미치지 않습니다(ES가 아닌 GLSL도 포함).
  • DebugView 이제 포인트 라이트 그림자에 대한 바운드 시각화를 지원합니다.
  • 빌트인 지오메트리를 Qt 3D 에서 QtQuick3D.헬퍼로 포팅했습니다. PlaneGeometry, SphereGeometry, CylinderGeometry, ConeGeometry, TorusGeometry 은 이제 QtQuick3D.Helpers에서 사용할 수 있습니다.
  • Qt 3D 에서 QtQuick3D.Helpers로 ExtrudedTextMesh 포팅을 추가했습니다.
  • 머티리얼 에디터에서 커스텀 머티리얼과 함께 인스턴싱을 사용할 수 있도록 지원이 추가되었습니다.

Qt Quick 3D XR 모듈

  • 새로운 XrHapticFeedback 항목을 통해 진폭, 지속 시간 및 주파수를 사용하는 컨트롤러의 햅틱 출력에 대한 지원을 추가했습니다.
  • 모든 핸들러 함수에서 동작을 테스트할 필요 없이 조건부로 동작을 비활성화할 수 있는 새로운 프로퍼티를 XrInputAction 에 추가했습니다.
  • macOS의 메타 XR 시뮬레이터에서 실행을 지원하기 위해 OpenXR용 메탈 백엔드를 추가했습니다.
  • 이제 multiViewRenderingEnabled 속성은 읽기 전용이며 런타임에 멀티뷰 렌더링을 토글할 수 없습니다. 멀티뷰 렌더링이 지원되는 경우 애플리케이션의 수명 기간 동안 활성화됩니다. 멀티뷰 렌더링을 원하지 않는 포팅 상황에서는 환경 변수 QT_QUICK3D_XR_DISABLE_MULTIVIEW를 0이 아닌 값으로 설정하여 비활성화할 수 있습니다.

Qt Quick 벡터이미지 모듈

  • 컬러 애니메이션 및 변형 애니메이션에 대한 예비 지원이 추가되어 현재 Qt SVG에서 지원되는 것과 일치합니다.

Qt SQL 모듈

  • QSqlDriver 연결된 QSqlDatabase 인스턴스의 연결 이름을 반환하는 새로운 함수 connectionName()를 얻었습니다.
  • QSqlQueryModel 이제 Qt 외부에서 데이터베이스를 수정하여 다시 읽어야 하는 경우 refresh()로 데이터베이스를 새로 고칠 수 있습니다.

Qt SVG 모듈

  • 애니메이션을 비활성화하기 위해 QtSvg::Options 에 세 가지 새로운 값을 추가했습니다.
  • 채우기, 획, 변형 속성에 대한 CSS 애니메이션을 지원합니다.

Qt 가상 키보드 모듈

  • 플릭 키를 사용하는 새로운 일본어 레이아웃을 추가했습니다.
  • 키 사운드 볼륨 조절을 지원합니다.

Qt WebEngine 모듈

  • 내부 렌더링이 ANGLE을 사용하도록 전환되었으며, Qt가 OpenGL RHI를 사용할 때도 마찬가지입니다. Chrome과의 성능 및 버그 유사성 개선.
  • QWebEngineProfileBuilder 프로파일을 생성하기 전에 프로파일을 구성하고 경합 조건을 피하기 위해 QML WebEngineProfilePrototype 을 추가했습니다.
  • QWebEngineLoadingInfo 로드가 다운로드와 관련이 있음을 나타내는 isDownload 프로퍼티를 추가했습니다.
  • QWebEngineUrlRequestInfo 또한 요청이 다운로드와 관련되어 있음을 나타내는 isDownload() 메서드를 추가했습니다.
  • QWebEngineSettings 그리고 QML WebEngineSettings 에 세 가지 새로운 설정이 추가되었습니다. 인쇄를 구성하기 위한 PrintHeaderAndFooter 및 PreferCSSMarginsForPrinting. 그리고 일부 웹 사이트에서 모바일 모드의 트리거로 사용하는 TouchEvents API를 끄기 위해 TouchEventsApiEnabled를 추가했습니다.

Qt Widgets Module

  • QAbstractItemView 에는 데이터변경() 내에서 변경된 부분을 파악하는 대신 전체 보기 업데이트 시점을 지정하는 새로운 속성 updateThreshold 이 추가되었습니다. 이는 큰 모델에서 많은 항목이 변경될 때 업데이트 정류 계산이 전체 보기 업데이트보다 오래 걸릴 수 있으므로 특히 유용합니다.
  • QComboBox labelDrawingMode 속성을 UseDelegate 으로 설정하여 항목 뷰의 델리게이트를 사용하여 레이블을 그릴 수 있습니다.
  • QHeaderView 는 섹션의 크기를 조정하거나 숨기거나 순서를 바꾸지 않는 한 대용량 모델의 메모리 사용량을 크게 줄이도록 최적화되었습니다.
  • QWidget::accessibleIdentifier 으로 설정된 식별자는 보조 기술 및 자동화된 테스트 도구에서 특정 위젯을 식별하는 데 사용할 수 있습니다.
  • QDockWidget 의 도크 위치는 QDockWidget::dockLocation 속성을 사용하여 명시적으로 설정할 수 없습니다.
  • QStackedWidget 이제 새 위젯이 스택에 추가되면 widgetAdded() 신호를 보냅니다.

Qt XML 모듈

도구

QDoc 문서 생성기

  • QDoc은 이제 매크로 인수의 서식 지정 명령을 허용합니다.
  • 이제 작성자는 auto 을 사용하여 fn-명령으로 문서화된 함수의 기본 반환 유형을 재정의할 수 있습니다.
  • QDoc은 이제 C++ 헤더의 주석에서 문서를 생성할 수 있습니다. 이 기능은 Qt 6.9의 QDoc에 기술 미리보기로 추가되었으며, 사용자들의 피드백을 기다리고 있습니다. documentationinheaders QDoc 구성 변수를 활성화하여 사용해 보세요.
  • 새로운 qmlenumeratorsfrom 명령으로 C++ 열거형에서 QML 열거형 문서를 생성할 수 있습니다.
  • 생성 목록 및 주석 목록 명령은 이제 생성된 목록에 대한 사용자 지정 정렬 순서를 지원합니다.
  • deprecated는 향후 버전을 허용하며, QDoc은 향후 버전으로 인식될 때 적절한 텍스트를 생성합니다.
  • Clang 라이브러리 요구 사항: QDoc에는 LLVM 17의 Clang 라이브러리가 필요합니다. 또한 LLVM 18, 19 및 20의 Clang 라이브러리에서도 작동하는 것으로 확인되었습니다.
  • QDoc은 이제 타사 프로젝트에 대한 CMake 요구 사항 조정을 cmakecomponent, cmakepackagecmaketargetitem 명령으로 지원합니다.
  • 예제 관련 경고는 이제 새로운 examples.warnaboutmissingimagesexamples.warnaboutmissingprojectfiles 구성 변수를 통해 구성할 수 있습니다.
  • 이제 QDoc에서 문서의 이미지에 대한 도구 설명을 생성할 수 있습니다. 프로젝트에 이 기능을 활성화하는 방법은 새로운 usealttextastitle 구성 변수에 대한 설명서를 참조하세요.

플랫폼 변경 사항

빌드 시스템 변경 사항

  • 이제 CMake 프로젝트에서 Qt를 빌드하고 Qt를 사용하려면 CMake 버전 3.22 이상이 필요합니다.

데스크톱 플랫폼

Windows

  • CBDT 및 COLRv1과 같은 추가 이모티콘 글꼴 형식 렌더링에 대한 지원이 추가되었습니다.

Linux의 웨이랜드 클라이언트

  • 컴포저가 이 프로토콜을 지원하는 경우 QWindow::setIcon()이 작동하도록 새로운 xdg-toplevel-icon-v1 프로토콜에 대한 지원이 추가되었습니다.
  • 이제 창의 기본 wl_surface 은 수명을 공유하며 창이 숨겨져 있어도 더 이상 파괴되지 않습니다.

모바일 플랫폼

Android

  • APK 내에서 압축되지 않은 네이티브 라이브러리를 지원하며 packagingOptions.jniLibs.useLegacyPackaging true 이 필요하지 않습니다.
  • qt_add_android_permission() CMake 함수를 도입합니다.
  • 자바 코드 빌드를 위한 SDK 레벨을 설정하는 QT_ANDROID_COMPILE_SDK_VERSION CMake 속성을 추가합니다.
  • 앱의 아이콘을 설정하려면 QT_ANDROID_APP_ICON CMake 속성을 추가합니다.
  • 앱의 이름을 설정하려면 QT_ANDROID_APP_NAME CMake 속성을 추가합니다.
  • API 레벨 31 이상에 대한 위치 권한과 블루투스 권한을 분리합니다.
  • 대기 중인 백그라운드 UI 이벤트의 최대치를 설정할 수 있습니다.
  • 앱을 쉽게 배포, 실행하고 터미널에서 로그를 가져올 수 있는 스크립트를 추가합니다.
  • Qt Quick AndroidQtQuickView용:
    • QtAbstractItemModel에 setData() 및 dataChanged() 메서드를 추가합니다.
    • OnDataChangedListerner 콜백 인터페이스를 추가합니다.
    • QtQuickViewContent: 기본 QtQuickViewContent 객체를 전달하는 onStatusChanged() 오버로드를 추가합니다.
    • 안드로이드 서비스에서 여러 개의 임베디드 뷰를 지원합니다.

임베디드 플랫폼

Boot to Qt

실시간 OS

  • 실시간 OS 지원은 LTS 릴리스에 대해서만 제공됩니다. LTS가 아닌 릴리스의 경우 프로페셔널 서비스를 통해서만 지원이 제공됩니다.

API 변경 사항 목록

이 페이지에는 Qt 6.9의 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.