Qt 엑스트라 모듈의 변경 사항

Qt 6는 프레임워크를 보다 효율적이고 사용하기 쉽게 만들기 위한 의식적인 노력의 결과물입니다.

각 릴리스에서 모든 공개 API에 대해 바이너리 및 소스 호환성을 유지하려고 노력했습니다. 하지만 Qt를 더 나은 프레임워크로 만들기 위해 몇 가지 변경이 불가피했습니다.

이러한 변화 중 하나는 플랫폼별 엑스트라 모듈을 제거하여 일관된 크로스 플랫폼 스토리와 Qt 6의 미래를 보장하는 것이었습니다. 이 모듈이 제공하는 대부분의 기능은 다른 Qt 모듈의 유사한 기능으로 대체되었습니다. 이 가이드는 이러한 대체 기능을 요약하고 Qt에서 대체 API를 제공하지 않는 경우에 대한 지침을 제공합니다.

Qt Mac 엑스트라의 변경 사항

QtMac 네임스페이스

QtMac 네임스페이스의 대부분의 멤버에는 명시적인 대체 함수가 있습니다. QtMac::fromCGImageRef 함수는 API의 알려진 클라이언트 부족으로 인해 제거되었습니다.

QMacPasteboardMime

QMacPasteboardMime 클래스가 QUtiMimeConverter 로 대체되었습니다. 자세한 내용은 Qt GUI#네이티브 클립보드 통합에 대한 변경 사항을 참조하세요.

QMacToolBar

QMacToolBarQMacToolBarItem 클래스가 제거되었습니다. QToolBar 을 대체로 사용하세요.

Qt 윈도우 엑스트라의 변경 사항

QtWin 네임스페이스

QtWin 네임스페이스의 많은 멤버가 명시적으로 대체되었습니다. 이러한 대체를 Qt Widgets 또는 Qt Quick 로 사용하려면 관련 위젯 또는 컨트롤의 QWindow 에서 작동합니다.

나머지 함수는 제거되었습니다:

errorStringFromHresult

WinExtras에서 내부적으로만 사용됩니다. 이 API의 다른 알려진 클라이언트는 없습니다.

colorizationColor/isCompositionOpaque

다른 플랫폼에 존재하는 개념(색조/악센트 색상)입니다. 새로운 크로스 플랫폼 API(예: 새로운 QPalette 역할 또는 플랫폼 테마 속성)를 보증합니다.

setWindowFlip3DPolicy

Windows 7 기능. Windows 10에서는 더 이상 지원되지 않습니다.

확장프레임인턴 클라이언트 영역

다른 플랫폼에도 유사한 기능이 존재합니다. 클라이언트 영역과 비클라이언트 영역(프레임/타이틀바) 간의 관계를 제어하기 위해 크로스 플랫폼 QWindow API를 보증합니다. 자세한 내용은 QTBUG-94010을 참조하세요.

블러 비하인드 활성화

Windows 8부터 사용되지 않습니다.

작업 표시줄활성화탭 및 작업 표시줄(추가/삭제)탭

이 API의 알려진 클라이언트가 없습니다.

QWinMime

QWinMime 클래스가 QWindowsMimeConverter 로 대체되었습니다. 자세한 내용은 Qt GUI#네이티브 클립보드 통합의 변경사항을 참조하세요.

QWinJumpList

크로스 플랫폼 솔루션을 보장하기 위해 QWinJumpList, QWinJumpListCategoryQWinJumpListItem 클래스가 제거되었습니다. 자세한 내용은 QTBUG-94007을 참조하십시오.

QWinTaskbarButton

크로스 플랫폼 솔루션을 보장하기 위해 QWinTaskbarButtonQWinTaskbarProgress 클래스가 제거되었습니다. 자세한 내용은 QTBUG-94009QTBUG-94008을 참조하십시오.

QWin썸네일 툴바

API의 알려진 클라이언트가 없기 때문에 QWinThumbnailToolBarQWinThumbnailToolButton 클래스가 제거되었습니다.

Qt X11 Extras의 변경 사항

Qt X11 Extras 모듈은 Qt 6에서 제거되었습니다.

다음 스니펫에서와 같이 QGuiApplication 에서 QNativeInterface::QX11Application 객체를 가져올 수 있는지 확인하세요:

    Display *display = nullptr;
    xcb_connection_t *connection = nullptr;
    bool isPlatformX11 = false;
    if (auto *x11Application = qGuiApp->nativeInterface<QNativeInterface::QX11Application>()) {
        display = x11Application->display();
        connection = x11Application->connection();
        isPlatformX11 = true;
    }
    // or
    // isPlatformX11 = qGuiApp->nativeInterface<QNativeInterface::QX11Application>();

여전히 QX11Info 클래스의 기능에 의존하는 클라이언트는 임시 해결책으로 개인 헤더 <QtGui/private/qtx11extras_p.h> 를 포함할 수 있습니다. 프라이빗 헤더를 활성화하려면 qmake 과 함께 QT += gui-private 을 사용하거나 Qt::GuiPrivate 과 함께 CMake 에 프로젝트 종속성을 추가합니다.

Qt 안드로이드 엑스트라의 변경 사항

모듈의 주요 기능을 다른 Qt 모듈로 가져왔습니다.

여전히 누락된 기능에 의존하는 클라이언트는 임시 해결책으로 개인 헤더 <QtCore/private/qandroidextras_p.h> 를 포함할 수 있습니다. 비공개 헤더를 활성화하려면 qmake 과 함께 QT += core-private 을 사용하거나 Qt::CorePrivate 과 함께 CMake 에 프로젝트 종속성을 추가하세요.

QAndroidJniObject 및 QAndroidJniEnvironment

QAndroidJniObjectQAndroidJniEnvironment 클래스는 각각 QJniObjectQJniEnvironment 로 대체되었습니다.

QAndroidJniExceptionCleaner 클래스는 더 이상 필요하지 않습니다. 대체 클래스는 QJniEnvironment::checkAndClearExceptions()를 참조하십시오.

QtAndroid 네임스페이스

QtAndroid 네임스페이스의 많은 멤버가 QAndroidApplication 네이티브 인터페이스에서 대체되었습니다.

권한

애플리케이션 권한 인프라를 사용하면 크로스 플랫폼 방식으로 권한 집합을 요청할 수 있습니다.

QtAndroidPrivate 네임스페이스는 크로스 플랫폼 권한 시스템에서 다루지 않는 안드로이드 전용 권한에 액세스하는 데 사용할 수 있습니다.

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