Spec-Zone.ru › Qt

Класс QStylePainter

Класс QStylePainter — это вспомогательный класс для рисования элементов QStyle внутри виджета. Подробнее...

Заголовок: #include <QStylePainter>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследует: QPainter
  • Список всех членов, включая унаследованные

Открытые функции

QStylePainter(QPaintDevice *pd, QWidget *widget)
QStylePainter(QWidget *widget)
QStylePainter()
bool begin(QWidget *widget)
bool begin(QPaintDevice *pd, QWidget *widget)
void drawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex &option)
void drawControl(QStyle::ControlElement ce, const QStyleOption &option)
void drawItemPixmap(const QRect &rect, int flags, const QPixmap &pixmap)
void drawItemText(const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole)
void drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption &option)
QStyle * style() const

Подробное описание

QStylePainter расширяет QPainter набором высокоуровневых draw...() функций, реализованных поверх API QStyle. Преимущество использования QStylePainter заключается в том, что списки параметров значительно короче. В то время как объект QStyle должен иметь возможность рисовать на любом виджете с использованием любого рисовальщика (поскольку приложение обычно имеет один объект QStyle, общий для всех виджетов), QStylePainter инициализируется виджетом, устраняя необходимость указывать QWidget, QPainter и QStyle для каждого вызова функции.

Пример использования QStyle напрямую:

void MyWidget::paintEvent(QPaintEvent * /* event */)
{
    QPainter painter(this);

    QStyleOptionFocusRect option;
    option.initFrom(this);
    option.backgroundColor = palette().color(QPalette::Background);

    style()->drawPrimitive(QStyle::PE_FrameFocusRect, &option, &painter, this);
}

Пример использования QStylePainter:

void MyWidget::paintEvent(QPaintEvent * /* event */)
{
    QStylePainter painter(this);

    QStyleOptionFocusRect option;
    option.initFrom(this);
    option.backgroundColor = palette().color(QPalette::Background);

    painter.drawPrimitive(QStyle::PE_FrameFocusRect, option);
}

См. также QStyle и QStyleOption.

Документация по функциям-членам

QStylePainter::QStylePainter(QPaintDevice *pd, QWidget *widget)

Создает QStylePainter, используя pd в качестве устройства рисования и атрибуты из widget.

QStylePainter::QStylePainter(QWidget *widget)

Создает QStylePainter, используя виджет widget в качестве устройства рисования.

QStylePainter::QStylePainter()

Конструктор QStylePainter.

bool QStylePainter::begin(QWidget *widget)

Начинает операции рисования на указанном виджете widget. Возвращает true если рисовальщик готов к использованию; в противном случае возвращает false.

Это автоматически вызывается конструктором, принимающим QWidget.

bool QStylePainter::begin(QPaintDevice *pd, QWidget *widget)

Это перегруженная функция.

Начинает операции рисования на устройстве рисования pd как если бы это был widget.

Это автоматически вызывается конструктором, принимающим QPaintDevice и QWidget.

void QStylePainter::drawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex &option)

Использует стиль виджета для отрисовки сложного элемента управления cc, заданного QStyleOptionComplex option.

См. также QStyle::drawComplexControl().

void QStylePainter::drawControl(QStyle::ControlElement ce, const QStyleOption &option)

Использует стиль виджета для отрисовки элемента управления ce, заданного QStyleOption option.

См. также QStyle::drawControl().

void QStylePainter::drawItemPixmap(const QRect &rect, int flags, const QPixmap &pixmap)

Отображает pixmap в прямоугольнике rect. Pixmap выравнивается в соответствии с flags.

См. также QStyle::drawItemPixmap() и Qt::Alignment.

void QStylePainter::drawItemText(const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole)

Отображает text в прямоугольнике rect и палитре pal. Текст выравнивается и обрезается в соответствии с flags.

Цвет пера задаётся с помощью textRole. Логическое значение enabled указывает, активирован ли элемент; при переопределении этого значения следует учитывать влияние на отображение элемента.

См. также QStyle::drawItemText() и Qt::Alignment.

void QStylePainter::drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption &option)

Использует стиль виджета для отрисовки примитивного элемента pe, заданного QStyleOption option.

См. также QStyle::drawPrimitive().

QStyle *QStylePainter::style() const

Возвращает текущий стиль, используемый QStylePainter.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qstylepainter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API