이 페이지에서

QIconEngine Class

QIconEngine 클래스는 QIcon 렌더러를 위한 추상 기본 클래스를 제공합니다. 더 보기...

헤더: #include <QIconEngine>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

공개 유형

struct ScaledPixmapArgument
enum IconEngineHook { IsNullHook, ScaledPixmapHook }

공개 함수

QIconEngine()
virtual ~QIconEngine()
virtual QSize actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state)
virtual void addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state)
virtual void addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state)
virtual QList<QSize> availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off)
virtual QIconEngine *clone() const = 0
virtual QString iconName()
virtual bool isNull()
virtual QString key() const
virtual void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) = 0
virtual QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state)
virtual bool read(QDataStream &in)
virtual QPixmap scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale)
virtual void virtual_hook(int id, void *data)
virtual bool write(QDataStream &out) const

상세 설명

아이콘 엔진은 QIcon 에 대한 렌더링 기능을 제공합니다. 각 아이콘에는 요청된 크기, 모드 및 상태로 아이콘을 그리는 역할을 하는 해당 아이콘 엔진이 있습니다.

아이콘은 paint() 함수를 통해 렌더링되며, pixmap() 함수를 사용하여 픽스맵으로 추가로 가져올 수도 있습니다(기본 구현은 이를 달성하기 위해 단순히 paint()를 사용합니다). addPixmap() 함수는 아이콘 엔진에 새로운 픽스맵을 추가하는 데 사용할 수 있으며, QIcon 에서 특수한 사용자 정의 픽스맵을 추가하는 데 사용됩니다.

paint(), pixmap() 및 addPixmap() 함수는 모두 가상 함수이므로, QIconEngine의 하위 클래스에서 재구현할 수 있습니다.

QIconEnginePlugin도 참조하십시오 .

멤버 유형 문서

enum QIconEngine::IconEngineHook

이 열거형 값들은 바이너리 호환성을 해치지 않으면서 아이콘 엔진에 대한 추가 쿼리를 가능하게 하기 위해 ` virtual_hook()`에 사용됩니다.

상수값설명
QIconEngine::IsNullHook3이 엔진이 null 아이콘을 나타내는지 쿼리할 수 있게 합니다. ` virtual_hook()`의 ` data ` 인수는 아이콘이 null인 경우 true로 설정할 수 있는 bool 값을 가리키는 포인터입니다. 이 열거형 값은 Qt 5.7에서 추가되었습니다.
QIconEngine::ScaledPixmapHook4주어진 배율(일반적으로 장치 픽셀 비율과 동일)에 따라 크기가 조정된 픽스맵을 가져오는 방법을 제공합니다. ` virtual_hook()` 함수의 ` data ` 인자는 입력 및 출력 인자를 모두 포함하는 ` ScaledPixmapArgument ` 포인터입니다. 이 열거형 값은 Qt 5.9에서 추가되었습니다.

virtual_hook()도 참조하십시오 .

멤버 함수 설명서

QIconEngine::QIconEngine()

아이콘 엔진을 생성합니다.

[virtual noexcept] QIconEngine::~QIconEngine()

아이콘 엔진을 삭제합니다.

[virtual] QSize QIconEngine::actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state)

요청된 size, mode 및 state 에 대해 엔진이 제공하는 아이콘의 실제 크기를 반환합니다. 기본 구현은 주어진 size 를 반환합니다.

반환되는 크기는 장치 독립 픽셀(DIP) 단위입니다(이는 고해상도(high-dpi) 픽스맵의 경우 관련이 있습니다).

[virtual] void QIconEngine::addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state)

QIcon::addFile()에 의해 호출됩니다. 지정된 fileName, size, mode 및 state 을 사용하여 파일에서 특수한 픽스맵을 추가합니다. 기본 픽스맵 기반 엔진은 제공된 파일 이름을 저장하며, 픽스맵의 크기가 요청된 아이콘의 크기와 일치할 경우 크기가 조정된 픽스맵을 사용하는 대신 필요에 따라 픽스맵을 불러옵니다. 확장 가능한 벡터 형식을 구현하는 사용자 정의 아이콘 엔진은 추가 파일을 무시해도 무방합니다.

[virtual] void QIconEngine::addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state)

QIcon::addPixmap()에 의해 호출됩니다. 주어진 mode 및 state 에 대한 특화된 pixmap 를 추가합니다. 기본 픽스맵 기반 엔진은 제공된 모든 픽스맵을 저장하며, 픽스맵의 크기가 요청된 아이콘의 크기와 일치할 경우 크기 조정된 픽스맵 대신 해당 픽스맵을 사용합니다. 확장 가능한 벡터 형식을 구현하는 사용자 정의 아이콘 엔진은 추가 픽스맵을 무시해도 무방합니다.

[virtual] QList<QSize> QIconEngine::availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off)

지정된 mode 및 state 에 대해 엔진에 포함된 모든 이미지의 크기를 반환합니다.

[pure virtual] QIconEngine *QIconEngine::clone() const

이 메서드를 재구현하여 이 아이콘 엔진의 복사본을 반환하도록 하십시오.

[virtual] QString QIconEngine::iconName()

가능한 경우, 엔진을 생성할 때 사용된 이름을 반환합니다.

[virtual] bool QIconEngine::isNull()

이 아이콘 엔진이 null인 QIcon 을 나타내는 경우 true를 반환합니다.

참고: 아이콘 엔진이 이 함수를 재구현하지 않는경우 , 실제 작업은 ` virtual_hook()` 메서드에서 수행되므로, 이 메서드는 아이콘 엔진의 지원 여부에 따라 달라지며 모든 아이콘 엔진에서 작동하지 않을 수 있습니다.

[virtual] QString QIconEngine::key() const

이 아이콘 엔진을 식별하는 키를 반환합니다.

[pure virtual] void QIconEngine::paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state)

지정된 ` painter `를 사용하여, ` mode ` 및 ` state `를 적용한 아이콘을 ` rect` 사각형 안에 그립니다.

[virtual] QPixmap QIconEngine::pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state)

아이콘을 필수 속성인 ` size`, ` mode` 및 ` state`을 가진 픽스맵으로 반환합니다. 기본 구현은 새로운 픽스맵을 생성하고 ` paint()`를 호출하여 내용을 채웁니다.

[virtual] bool QIconEngine::read(QDataStream &in)

QDataStream ( in)에서 아이콘 엔진 콘텐츠를 읽습니다. 콘텐츠를 읽은 경우 true를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

QIconEngine의 기본 구현은 항상 false를 반환합니다.

[virtual] QPixmap QIconEngine::scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale)

지정된 size, mode, state 및 scale 에 대한 픽스맵을 반환합니다.

scale 인수는 일반적으로 디스플레이의 장치 픽셀 비율과 동일합니다. 크기는 장치 독립 픽셀(DIP) 단위로 지정됩니다.

참고: 아이콘 엔진이 이 함수를 재구현하지 않은경우 , 실제 작업은 virtual_hook() 메서드에 의해 수행되므로, 이 메서드는 아이콘 엔진의 지원 여부에 따라 달라지며 모든 아이콘 엔진에서 작동하지 않을 수 있습니다.

참고: 일부 엔진은 scale 를 정수로 형변환할 수 있습니다.

ScaledPixmapArgument도 참조하십시오 .

[virtual] void QIconEngine::virtual_hook(int id, void *data)

새로운 가상 메서드를 추가하지 않고(또한 바이너리 호환성을 깨지 않으면서) ` QIconEngine `을 확장할 수 있는 추가적인 방법입니다. ` data `의 실제 동작과 형식은 ` id ` 인자에 따라 달라지며, 이 인자는 사실 ` IconEngineHook ` 열거형에 정의된 상수입니다.

IconEngineHook도 참조하십시오 .

[virtual] bool QIconEngine::write(QDataStream &out) const

이 엔진의 내용을 QDataStream out 에 기록합니다. 내용이 기록된 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

QIconEngine의 기본 구현은 항상 false를 반환합니다.

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