QProxyStyle Class
QProxyStyle 클래스는 QStyle 요소의 동적 재정의 작업을 간소화하는 편의 클래스입니다. 더 보기...
Header: | #include <QProxyStyle> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
상속합니다: | QCommonStyle |
공용 함수
QProxyStyle(QStyle *style = nullptr) | |
QProxyStyle(const QString &key) | |
virtual | ~QProxyStyle() |
QStyle * | baseStyle() const |
void | setBaseStyle(QStyle *style) |
재구현된 공용 함수
virtual void | drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const override |
virtual void | drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const override |
virtual void | drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const override |
virtual void | drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const override |
virtual void | drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const override |
virtual QPixmap | generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const override |
virtual QStyle::SubControl | hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &pos, const QWidget *widget = nullptr) const override |
virtual QRect | itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const override |
virtual QRect | itemTextRect(const QFontMetrics &fm, const QRect &r, int flags, bool enabled, const QString &text) const override |
virtual int | layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const override |
virtual int | pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const override |
virtual void | polish(QApplication *app) override |
virtual void | polish(QPalette &pal) override |
virtual void | polish(QWidget *widget) override |
virtual QSize | sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const override |
virtual QIcon | standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const override |
virtual QPalette | standardPalette() const override |
virtual QPixmap | standardPixmap(QStyle::StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget = nullptr) const override |
virtual int | styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const override |
virtual QRect | subControlRect(QStyle::ComplexControl cc, const QStyleOptionComplex *option, QStyle::SubControl sc, const QWidget *widget) const override |
virtual QRect | subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget) const override |
virtual void | unpolish(QApplication *app) override |
virtual void | unpolish(QWidget *widget) override |
재구현된 보호 함수
virtual bool | event(QEvent *e) override |
상세 설명
QProxyStyle은 그림이나 기타 특정 스타일 동작을 동적으로 재정의하기 위해 QStyle (일반적으로 기본 시스템 스타일)을 래핑합니다.
다음 예는 모든 플랫폼에서 바로 가기 밑줄 동작을 재정의하는 방법을 보여줍니다:
#include "textedit.h" #include <QApplication> #include <QProxyStyle> class MyProxyStyle : public QProxyStyle { public: int styleHint(StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const override { if (hint == QStyle::SH_UnderlineShortcut) return 0; return QProxyStyle::styleHint(hint, option, widget, returnData); } }; int main(int argc, char **argv) { Q_INIT_RESOURCE(textedit); QApplication a(argc, argv); a.setStyle(new MyProxyStyle); TextEdit mw; mw.resize(700, 800); mw.show(); //... }
경고: Qt에서 제공하는 common styles 은 QStyle::proxy()을 호출하므로 이 힌트를 존중하지만, 사용자 정의 또는 시스템 제어 스타일에 대해 QStyle::proxy()이 호출된다는 보장은 없습니다. 예를 들어 운영 체제에서 메뉴를 처리하는 Mac에서는 작동하지 않습니다.
프록시 스타일을 특정 위젯에만 설정해야 하는 경우 QWidget::style()에서 반환되는 전역 애플리케이션 스타일에 프록시를 설정하지 않도록 해야 합니다. 위젯에 대해 다음과 유사한 별도의 사용자 정의 스타일을 만들어야 합니다:
... auto proxy = new MyProxyStyle(QApplication::style()->name()); proxy->setParent(widget); // take ownership to avoid memleak widget->setStyle(proxy); ...
QStyle 를참조하세요 .
멤버 함수 문서
QProxyStyle::QProxyStyle(QStyle *style = nullptr)
지정된 style 또는 style 이 지정되지 않은 경우 기본 네이티브 style 에서 동작을 재정의하기 위한 QProxyStyle 객체를 구성합니다.
style 의 소유권은 QProxyStyle로 이전됩니다.
QProxyStyle::QProxyStyle(const QString &key)
스타일 key 으로 지정된 기본 스타일 또는 지정된 스타일 key 을 인식할 수 없는 경우 현재 application style 에서 동작을 재정의하기 위한 QProxyStyle 객체를 구축합니다.
QStyleFactory::create()도 참조하세요 .
[virtual noexcept]
QProxyStyle::~QProxyStyle()
QProxyStyle 객체를 삭제합니다.
QStyle *QProxyStyle::baseStyle() const
프록시 기본 스타일 객체를 반환합니다. 프록시 스타일에 기본 스타일이 설정되어 있지 않으면 QProxyStyle 이 대신 애플리케이션 스타일의 인스턴스를 만듭니다.
setBaseStyle() 및 QStyle 을참조하세요 .
[override virtual]
void QProxyStyle::drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const
재 구현합니다: QCommonStyle::drawComplexControl(QStyle::ComplexControl cc, const Q스타일 옵션 컴플렉스 *옵트, Q페인터 *p, const Q위젯 *위젯) const.
[override virtual]
void QProxyStyle::drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const
재 구현합니다: QCommonStyle::drawControl(Q스타일::컨트롤 엘리먼트 엘리먼트, const Q스타일 옵션 *옵트, Q페인터 *p, const Q위젯 *위젯) const.
[override virtual]
void QProxyStyle::drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const
재구현합니다: QStyle::drawItemPixmap(QPainter *페인터, const QRect &rectangle, int alignment, const QPixmap &pixmap) const.
[override virtual]
void QProxyStyle::drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const
재 구현합니다: QStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole) const.
[override virtual]
void QProxyStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const
재 구현합니다: QCommonStyle::drawPrimitive(Q스타일::프리미티브 엘리먼트 pe, const Q스타일 옵션 *옵트, Q페인터 *p, const Q위젯 *위젯) const.
[override virtual protected]
bool QProxyStyle::event(QEvent *e)
다시 구현합니다: QObject::event(QEvent *e).
[override virtual]
QPixmap QProxyStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const
재 구현합니다: QCommonStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const.
[override virtual]
QStyle::SubControl QProxyStyle::hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &pos, const QWidget *widget = nullptr) const
재 구현합니다: QCommonStyle::hitTestComplexControl(QStyle::ComplexControl cc, const Q스타일 옵션 컴플렉스 *옵트, const Q포인트 &pt, const Q위젯 *위젯) const.
[override virtual]
QRect QProxyStyle::itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const
재구현합니다: QStyle::itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const.
[override virtual]
QRect QProxyStyle::itemTextRect(const QFontMetrics &fm, const QRect &r, int flags, bool enabled, const QString &text) const
재구현합니다: QStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const.
[override virtual]
int QProxyStyle::layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
재 구현합니다: QCommonStyle::layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option, const QWidget *widget) const.
이 슬롯은 레이아웃에서 control1 와 control2 사이에 사용해야 하는 간격을 결정하기 위해 layoutSpacing()에 의해 호출됩니다. orientation 는 컨트롤이 나란히 배치될지 또는 수직으로 쌓일지를 지정합니다. option 매개변수는 부모 위젯에 대한 추가 정보를 전달하는 데 사용할 수 있습니다. widget 매개변수는 선택 사항이며 option 이 nullptr
인 경우에도 사용할 수 있습니다.
기본 구현은 -1을 반환합니다.
combinedLayoutSpacing()도 참조하세요 .
[override virtual]
int QProxyStyle::pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
재구현합니다: QCommonStyle::pixelMetric(Q스타일::픽셀메트릭 m, const Q스타일옵션 *옵트, const Q위젯 *위젯) const.
[override virtual]
void QProxyStyle::polish(QApplication *app)
다시 구현합니다: QCommonStyle::polish(QApplication *앱).
[override virtual]
void QProxyStyle::polish(QPalette &pal)
다시 구현합니다: QCommonStyle::polish(Q팔레트 &pal).
[override virtual]
void QProxyStyle::polish(QWidget *widget)
다시 구현합니다: QCommonStyle::polish(QWidget *위젯).
void QProxyStyle::setBaseStyle(QStyle *style)
프록시할 기본 스타일을 설정합니다.
style 의 소유권은 QProxyStyle 으로 이전됩니다.
스타일이 nullptr
인 경우 데스크톱 종속 스타일이 자동으로 할당됩니다.
baseStyle()도 참조하세요 .
[override virtual]
QSize QProxyStyle::sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const
재 구현합니다: QCommonStyle::sizeFromContents(QStyle::ContentsType contentsType, const QStyleOption *opt, const QSize &contentsSize, const QWidget *widget) const.
[override virtual]
QIcon QProxyStyle::standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
재 구현합니다: QStyle::standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *옵션, const QWidget *위젯) const.
지정된 standardIcon 의 아이콘을 리턴합니다.
이 슬롯을 재구현하여 QStyle 서브클래스에 자체 아이콘을 제공하세요. option 인수는 적절한 아이콘을 찾는 데 필요한 추가 정보를 전달하는 데 사용할 수 있습니다. widget 인수는 선택 사항이며 아이콘을 찾는 데에도 사용할 수 있습니다.
[override virtual]
QPalette QProxyStyle::standardPalette() const
재구현합니다: QStyle::standardPalette() const.
[override virtual]
QPixmap QProxyStyle::standardPixmap(QStyle::StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget = nullptr) const
재구현합니다: QCommonStyle::standardPixmap(Q스타일::스탠다드픽스맵 sp, const Q스타일옵션 *옵션, const Q위젯 *위젯) const.
[override virtual]
int QProxyStyle::styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const
재 구현합니다: QCommonStyle::styleHint(QStyle::StyleHint sh, const QStyleOption *옵트, const QWidget *위젯, QStyleHintReturn *hret) const.
[override virtual]
QRect QProxyStyle::subControlRect(QStyle::ComplexControl cc, const QStyleOptionComplex *option, QStyle::SubControl sc, const QWidget *widget) const
재 구현합니다: QCommonStyle::subControlRect(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, QStyle::SubControl sc, const QWidget *widget) const.
[override virtual]
QRect QProxyStyle::subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget) const
재 구현합니다: QCommonStyle::subElementRect(Q스타일::서브 엘리먼트 sr, const Q스타일 옵션 *옵트, const Q위젯 *위젯) const.
[override virtual]
void QProxyStyle::unpolish(QApplication *app)
다시 구현합니다: QCommonStyle::unpolish(Q애플리케이션 *애플리케이션).
[override virtual]
void QProxyStyle::unpolish(QWidget *widget)
다시 구현합니다: QCommonStyle::unpolish(QWidget *위젯).
© 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.