의 아이콘 Qt Quick Controls

Qt Quick Controls 은 Qt 5.10부터 아이콘을 지원합니다. 즉, 이제 버튼, 항목 델리게이트 및 메뉴 항목에 텍스트 레이블 외에 아이콘을 표시할 수 있습니다.

아이콘 사용하기

AbstractButtonAction 는 아이콘을 설정할 수 있는 다음과 같은 프로퍼티를 제공합니다:

  • icon.name
  • icon.source
  • icon.width
  • icon.height
  • icon.color
  • icon.cache

테마 아이콘은 이름으로, 일반 아이콘은 소스 URL로 참조합니다. icon.nameicon.source 모두 아이콘을 항상 찾을 수 있도록 설정할 수 있습니다. 테마에서 아이콘을 찾을 수 있는 경우 icon.source 을 설정하더라도 항상 해당 아이콘이 사용됩니다. 테마에서 아이콘을 찾을 수 없는 경우 icon.source 대신 사용됩니다.

Button {
    icon.name: "edit-cut"
    icon.source: "images/cut.png"
}

Qt Quick Controls 2 스타일은 가이드라인에 따라 기본 아이콘 크기와 색상을 요청하지만 icon.width, icon.height, icon.color 속성을 설정하여 이를 재정의할 수 있습니다.

widthheight 이 설정되지 않은 아이콘이 로드하는 이미지는 사용 중인 아이콘 유형에 따라 다릅니다. 테마 아이콘의 경우 사용 가능한 가장 가까운 크기가 선택됩니다. 일반 아이콘의 경우 동작은 ImagesourceSize 속성과 동일합니다.

아이콘 색상은 기본적으로 다른 상태의 텍스트 색상과 일치하도록 지정됩니다. 원래 색상의 아이콘을 사용하려면 색상을 "transparent" 으로 설정합니다.

Button {
    icon.color: "transparent"
    icon.source: "images/logo.png"
}

버튼의 경우 display 속성을 사용하여 버튼 내에 아이콘과 텍스트가 표시되는 방식을 제어할 수 있습니다.

icon.cache 속성은 아이콘 이미지의 캐시 여부를 제어합니다. 자세한 내용은 cache 을 참조하세요.

아이콘 테마

호환되는 아이콘 테마는 여기에서 다운로드할 수 있는 프리데스크톱 아이콘 테마 사양을 따라야 합니다 (http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html) .

일반적으로 Linux와 UNIX만 플랫폼 수준에서 아이콘 테마를 지원하지만, 애플리케이션에 호환 아이콘 테마를 번들로 묶어 모든 플랫폼에서 테마 아이콘을 사용할 수 있습니다.

기본값 icon theme search paths 은 플랫폼에 따라 다릅니다. Linux 및 UNIX에서는 사용 가능한 경우 XDG_DATA_DIRS 환경 변수를 검색 경로로 사용합니다. 모든 플랫폼에는 리소스 디렉토리 :/icons 가 대체 경로로 사용됩니다. 사용자 지정 아이콘 테마 검색 경로는 QIcon::setThemeSearchPaths()로 설정할 수 있습니다.

다음 예제는 Qt의 리소스 시스템을 사용하여 mytheme라는 아이콘 테마를 애플리케이션의 리소스에 번들로 묶는 예제입니다.

<RCC>
    <qresource prefix="/">
        <file>icons/mytheme/index.theme</file>
        <file>icons/mytheme/32x32/myicon.png</file>
        <file>icons/mytheme/32x32@2/myicon.png</file>
    </qresource>
</RCC>

index.theme 파일은 아이콘 테마의 일반적인 속성을 설명하고 사용 가능한 테마 아이콘 디렉터리를 나열합니다:

[Icon Theme]
Name=mytheme
Comment=My Icon Theme

Directories=32x32,32x32@2

[32x32]
Size=32
Type=Fixed

[32x32@2]
Size=32
Scale=2
Type=Fixed

번들 아이콘 테마를 사용하려면 애플리케이션이 기본 QML 파일을 로드하기 전에 QIcon::setThemeName()를 호출해야 합니다:

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QIcon>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QIcon::setThemeName("mytheme"); // <--

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    return app.exec();
}

이제 대체 소스를 지정하지 않고도 번들 아이콘 테마의 명명된 아이콘을 사용할 수 있습니다:

Button {
    icon.name: "myicon"
}

갤러리 예제와 웨어러블 데모는 번들 아이콘 테마로 실행 가능한 완전한 애플리케이션을 제공합니다.

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