Класс 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.1/qstylepainter.html