Spec-Zone.ru › Qt 5.12

Класс QStyle

Класс QStyle — это абстрактный базовый класс, который инкапсулирует вид и ощущения графического интерфейса пользователя. Подробнее...

Заголовок: #include <QStyle>
qmake: QT += widgets
Наследует: QObject
Наследуется от:

QCommonStyle

  • Список всех членов, включая унаследованные
  • Устаревшие члены

Открытые типы

перечисление ComplexControl { CC_SpinBox, CC_ComboBox, CC_ScrollBar, CC_Slider, ..., CC_CustomBase }
перечисление ContentsType { CT_CheckBox, CT_ComboBox, CT_HeaderSection, CT_LineEdit, ..., CT_MdiControls }
перечисление ControlElement { CE_PushButton, CE_PushButtonBevel, CE_PushButtonLabel, CE_DockWidgetTitle, ..., CE_ShapedFrame }
перечисление PixelMetric { PM_ButtonMargin, PM_DockWidgetTitleBarButtonMargin, PM_ButtonDefaultIndicator, PM_MenuButtonIndicator, ..., PM_DefaultLayoutSpacing }
перечисление PrimitiveElement { PE_FrameStatusBar, PE_PanelButtonCommand, PE_FrameDefaultButton, PE_PanelButtonBevel, ..., PE_PanelMenu }
перечисление RequestSoftwareInputPanel { RSIP_OnMouseClickAndAlreadyFocused, RSIP_OnMouseClick }
перечисление StandardPixmap { SP_TitleBarMinButton, SP_TitleBarMenuButton, SP_TitleBarMaxButton, SP_TitleBarCloseButton, ..., SP_CustomBase }
флаги State
перечисление StateFlag { State_None, State_Active, State_AutoRaise, State_Children, ..., State_Small }
перечисление StyleHint { SH_EtchDisabledText, SH_DitherDisabledText, SH_ScrollBar_ContextMenu, SH_ScrollBar_MiddleClickAbsolutePosition, ..., SH_SpinBox_StepModifier }
перечисление SubControl { SC_None, SC_ScrollBarAddLine, SC_ScrollBarSubLine, SC_ScrollBarAddPage, ..., SC_All }
флаги SubControls
перечисление SubElement { SE_PushButtonContents, SE_PushButtonFocusRect, SE_PushButtonLayoutItem, SE_CheckBoxIndicator, ..., SE_ToolBarHandle }

Общедоступные функции

QStyle()
виртуальный ~QStyle()
int combinedLayoutSpacing(QSizePolicy::ControlTypes controls1, QSizePolicy::ControlTypes controls2, Qt::Orientation orientation, QStyleOption *option = nullptr, QWidget *widget = nullptr) const
виртуальный void drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const = 0
виртуальный void drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const = 0
виртуальный void drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const
виртуальный void drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const
виртуальный void drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const = 0
виртуальный QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const = 0
виртуальный QStyle::SubControl hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget = nullptr) const = 0
виртуальный QRect itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const
виртуальный QRect itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const
виртуальный int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = ..., const QWidget *widget = ...) const = 0
виртуальный int pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const = 0
виртуальный void polish(QWidget *widget)
виртуальный void polish(QApplication *application)
виртуальный void polish(QPalette &palette)
const QStyle * proxy() const
виртуальный QSize sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const = 0
виртуальный QIcon standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = ..., const QWidget *widget = ...) const = 0
виртуальный QPalette standardPalette() const
виртуальный int styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const = 0
виртуальный QRect subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget = nullptr) const = 0
виртуальный QRect subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const = 0
виртуальный void unpolish(QWidget *widget)
виртуальный void unpolish(QApplication *application)
  • 31 общедоступные функции унаследованы от QObject

Статические общедоступные члены

QRect alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle)
int sliderPositionFromValue(int min, int max, int logicalValue, int span, bool upsideDown = false)
int sliderValueFromPosition(int min, int max, int position, int span, bool upsideDown = false)
const QMetaObject staticMetaObject
Qt::Alignment visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment)
QPoint visualPos(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QPoint &logicalPosition)
QRect visualRect(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QRect &logicalRectangle)
  • 9 статических публичных членов, унаследованных от QObject

Дополнительные унаследованные члены

  • 1 свойство, унаследованное от QObject
  • 1 публичный слот, унаследованный от QObject
  • 2 сигнала, унаследованные от QObject
  • 9 защищённых функций, унаследованных от QObject

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

Класс QStyle — это абстрактный базовый класс, который инкапсулирует вид и поведение графического интерфейса пользователя.

Qt содержит набор подклассов QStyle, которые эмулируют стили различных платформ, поддерживаемых Qt (QWindowsStyle, QMacStyle и т. д.). По умолчанию эти стили включены в модуль Qt GUI. Стиль также может быть доступен в качестве плагина.

Встроенные виджеты Qt используют QStyle практически для всех операций отрисовки, обеспечивая точное отображение нативных виджетов. На диаграмме ниже показан виджет QComboBox в девяти различных стилях.

Nine combo boxes

Разделы:

Установка стиля

Стиль всей программы можно установить, используя функцию QApplication::setStyle(). Его также может указать пользователь, используя параметр командной строки -style:

./myapplication -style windows

Если стиль не задан, Qt выберет наиболее подходящий стиль для платформы или среды рабочего стола пользователя.

Стиль также можно установить на отдельный виджет, используя функцию QWidget::setStyle().

Разработка виджетов с учётом стиля

Если вы разрабатываете пользовательские виджеты и хотите, чтобы они хорошо выглядели на всех платформах, вы можете использовать функции QStyle для выполнения частей отрисовки виджета, таких как drawItemText(), drawItemPixmap(), drawPrimitive(), drawControl() и drawComplexControl().

Большинство функций отрисовки QStyle принимают четыре аргумента:

  • значение перечисления, определяющее графический элемент для отрисовки
  • QStyleOption, определяющий, как и где рендерить этот элемент
  • QPainter, который должен использоваться для отрисовки элемента
  • QWidget, на котором выполняется отрисовка (необязательно)

Например, если вы хотите нарисовать прямоугольник фокуса на своём виджете, вы можете написать:

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);
}

QStyle получает всю необходимую информацию для рендеринга графического элемента из объекта QStyleOption. Виджет передаётся в качестве последнего аргумента, на случай если стилю потребуются специальные эффекты (например, анимированные стандартные кнопки на macOS), но он не обязателен. На самом деле вы можете использовать QStyle для отрисовки на любом устройстве рисования, а не только на виджетах, правильно задав QPainter.

QStyleOption имеет различные подклассы для различных типов графических элементов, которые могут быть нарисованы. Например, PE_FrameFocusRect ожидает аргумент QStyleOptionFocusRect.

Для повышения скорости операций отрисовки QStyleOption и его подклассы имеют общедоступные данные членов. См. документацию класса QStyleOption для получения подробностей о его использовании.

Для удобства Qt предоставляет класс QStylePainter, который объединяет QStyle, QPainter и QWidget. Это позволяет писать

    QStylePainter painter(this);
    ...
    painter.drawPrimitive(QStyle::PE_FrameFocusRect, option);

вместо

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

Создание пользовательского стиля

Вы можете создать пользовательский вид и поведение для своего приложения, создав пользовательский стиль. Существует два подхода к созданию пользовательского стиля. В статическом подходе вы либо выбираете существующий класс QStyle, наследуете его и переопределяете виртуальные функции для предоставления пользовательского поведения, либо вы создаёте весь класс QStyle с нуля. В динамическом подходе вы изменяете поведение системного стиля во время выполнения. Статический подход описан ниже. Динамический подход описан в QProxyStyle.

Первый шаг в статическом подходе — выбрать один из стилей, предоставляемых Qt, на основе которого вы создадите свой пользовательский стиль. Ваш выбор класса QStyle будет зависеть от того, какой стиль наиболее похож на ваш желаемый стиль. Наиболее обобщённый класс, который вы можете использовать в качестве базового, это QCommonStyle (а не QStyle). Это связано с тем, что Qt требует, чтобы его стили были QCommonStyle.

В зависимости от того, какие части базового стиля вы хотите изменить, необходимо переопределить функции, используемые для отрисовки этих частей интерфейса. Для иллюстрации изменим вид стрелок для поля ввода QSpinBox, нарисованных QWindowsStyle. Стрелки — это элементы-примитивы, которые отрисовываются функцией drawPrimitive(), поэтому нам нужно переопределить эту функцию. Нам нужен следующий класс:

class CustomStyle : public QProxyStyle
{
    Q_OBJECT

public:
    CustomStyle();
    ~CustomStyle() {}

    void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
                       QPainter *painter, const QWidget *widget) const override;
};

Для отрисовки стрелок вверх и вниз QSpinBox использует примитивы PE_IndicatorSpinUp и PE_IndicatorSpinDown. Вот как переопределить функцию drawPrimitive() для их различной отрисовки:

void CustomStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option,
                                QPainter *painter, const QWidget *widget) const
{
    if (element == PE_IndicatorSpinUp || element == PE_IndicatorSpinDown) {
        QPolygon points(3);
        int x = option->rect.x();
        int y = option->rect.y();
        int w = option->rect.width() / 2;
        int h = option->rect.height() / 2;
        x += (option->rect.width() - w) / 2;
        y += (option->rect.height() - h) / 2;

        if (element == PE_IndicatorSpinUp) {
            points[0] = QPoint(x, y + h);
            points[1] = QPoint(x + w, y + h);
            points[2] = QPoint(x + w / 2, y);
        } else { // PE_SpinBoxDown
            points[0] = QPoint(x, y);
            points[1] = QPoint(x + w, y);
            points[2] = QPoint(x + w / 2, y + h);
        }

        if (option->state & State_Enabled) {
            painter->setPen(option->palette.mid().color());
            painter->setBrush(option->palette.buttonText());
        } else {
            painter->setPen(option->palette.buttonText().color());
            painter->setBrush(option->palette.mid());
        }
        painter->drawPolygon(points);
    } else {
    QProxyStyle::drawPrimitive(element, option, painter, widget);
    }
}

Обратите внимание, что мы не используем аргумент widget, за исключением того, чтобы передать его в функцию QWindowStyle::drawPrimitive(). Как уже упоминалось ранее, информация о том, что нужно рисовать и как это должно быть нарисовано, определяется объектом QStyleOption, поэтому нет необходимости спрашивать у виджета.

Если вам необходимо использовать аргумент widget для получения дополнительной информации, будьте внимательны, чтобы убедиться, что он не равен 0 и что он имеет правильный тип перед использованием.

    const QSpinBox *spinBox = qobject_cast<const QSpinBox *>(widget);
    if (spinBox) {
    ...
    }

При реализации пользовательского стиля нельзя предполагать, что виджет является QSpinBox только потому, что значение перечисления называется PE_IndicatorSpinUp или PE_IndicatorSpinDown.

Документация для примера Styles более подробно описывает эту тему.

Предупреждение: В настоящее время стили Qt для пользовательских подклассов QStyle не поддерживаются. Мы планируем решить эту проблему в будущей версии.

Использование пользовательского стиля

Существует несколько способов использования пользовательского стиля в приложении Qt. Самый простой способ — передать пользовательский стиль статической функции QApplication::setStyle() перед созданием объекта QApplication:

#include <QtWidgets>

#include "customstyle.h"

int main(int argc, char *argv[])
{
    QApplication::setStyle(new CustomStyle);
    QApplication app(argc, argv);
    QSpinBox spinBox;
    spinBox.show();
    return app.exec();
}

Вы можете вызвать QApplication::setStyle() в любое время, но, вызвав её до конструктора, вы гарантируете, что предпочтения пользователя, установленные с помощью параметра командной строки -style будут учтены.

Вы можете захотеть сделать ваш пользовательский стиль доступным для использования в других приложениях, которые могут не принадлежать вам и, следовательно, не доступны для компиляции вами. Система плагинов Qt позволяет создавать стили в качестве плагинов. Стиль, созданный как плагин, загружается как общий объект во время выполнения самим Qt. Обратитесь к документации по плагинам Qt для получения дополнительной информации о создании плагина стиля.

Скомпилируйте ваш плагин и поместите его в директорию Qt plugins/styles. Теперь у нас есть загружаемый стиль, который Qt может автоматически загрузить. Чтобы использовать ваш новый стиль с существующими приложениями, просто запустите приложение со следующим аргументом:

./myapplication -style custom

Приложение будет использовать вид и поведение от реализованного вами пользовательского стиля.

Рабочие столы с ориентацией справа налево

Языки, написанные справа налево (такие как арабский и иврит), обычно также зеркалят всю компоновку виджетов и требуют, чтобы свет исходил из верхнего правого угла экрана, а не из верхнего левого.

Если вы создаёте пользовательский стиль, вам следует уделять особое внимание при отрисовке асимметричных элементов, чтобы убедиться, что они также правильно отображаются в зеркальной компоновке. Простой способ проверить ваши стили — запустить приложения с параметром командной строки -reverse или вызвать QApplication::setLayoutDirection() в вашей функции main().

Вот некоторые моменты, которые следует учитывать при создании стиля, который будет хорошо работать в среде справа налево:

  • subControlRect() и subElementRect() возвращают прямоугольники в экранных координатах
  • QStyleOption::direction указывает, в каком направлении должен быть нарисован элемент
  • Если стиль не учитывает направление слева направо/справа налево, он будет отображать элементы так, как если бы это было слева направо
  • visualRect(), visualPos() и visualAlignment() — это полезные функции, которые выполняют преобразование из логического представления в экранное.
  • alignedRect() вернет логический прямоугольник, выровненный по текущему направлению

Стили в представлениях элементов

Отрисовка элементов в представлениях выполняется делегатом. Делегат по умолчанию Qt, QStyledItemDelegate, также используется для вычисления ограничивающих прямоугольников элементов и их вложенных элементов для различных типов ролей данных элементов data roles, которые поддерживает QStyledItemDelegate. Описание класса QStyledItemDelegate содержит информацию о поддерживаемых типах данных и ролях. Подробнее о ролях данных элементов можно узнать в разделе Программирование Model/View.

Когда QStyledItemDelegate отрисовывает свои элементы, он рисует CE_ItemViewItem и вычисляет их размер с помощью CT_ItemViewItem. Обратите внимание также, что он использует SE_ItemViewItemText для установки размера редакторов. При реализации стиля для настройки отрисовки представлений элементов необходимо проверить реализацию QCommonStyle (и любых других подклассов, от которых наследуется ваш стиль). Таким образом, вы узнаете, какие и как другие элементы стиля отрисовываются, и затем сможете переопределить отрисовку элементов, которые должны быть нарисованы по-другому.

Мы приводим небольшой пример, в котором мы настраиваем отрисовку фонов элементов.

    switch (element) {
        case (PE_PanelItemViewItem): {
            painter->save();

            QPoint topLeft = option->rect.topLeft();
            QPoint bottomRight = option->rect.topRight();
            QLinearGradient backgroundGradient(topLeft, bottomRight);
            backgroundGradient.setColorAt(0.0, QColor(Qt::yellow).lighter(190));
            backgroundGradient.setColorAt(1.0, Qt::white);
            painter->fillRect(option->rect, QBrush(backgroundGradient));

            painter->restore();
        break;
        }
        default:
            QProxyStyle::drawPrimitive(element, option, painter, widget);
    }

Примитивный элемент PE_PanelItemViewItem отвечает за отрисовку фона элементов и вызывается из реализации QCommonStyle CE_ItemViewItem.

Для добавления поддержки отрисовки новых типов данных и ролей данных элементов необходимо создать собственный делегат. Но если вам нужно только поддерживать типы данных, реализованные делегатом по умолчанию, настраиваемый стиль не нуждается в сопровождающем делегате. Описание класса QStyledItemDelegate содержит дополнительную информацию о пользовательских делегатах.

Отрисовка заголовков представлений элементов также выполняется стилем, предоставляя контроль над размером элементов заголовка и размером строк и столбцов.

См. также QStyleOption, QStylePainter, Пример стилей, Стили и виджеты, поддерживающие стили, QStyledItemDelegate и Стилизация.

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

enum QStyle::ComplexControl

Это перечисление описывает доступные сложные элементы управления. Сложные элементы управления имеют различное поведение в зависимости от того, где пользователь щелкает по ним или какие клавиши нажимаются.

Константа Значение Описание
QStyle::CC_SpinBox 0 Поле ввода со списком значений, например, QSpinBox.
QStyle::CC_ComboBox 1 Список выбора, например, QComboBox.
QStyle::CC_ScrollBar 2 Полоса прокрутки, например, QScrollBar.
QStyle::CC_Slider 3 Ползунок, например, QSlider.
QStyle::CC_ToolButton 4 Кнопка панели инструментов, например, QToolButton.
QStyle::CC_TitleBar 5 Строка заголовка, например, те, которые используются в QMdiSubWindow.
QStyle::CC_GroupBox 7 Группа, например, QGroupBox.
QStyle::CC_Dial 6 Циферблат, например, QDial.
QStyle::CC_MdiControls 8 Кнопки сворачивания, закрытия и нормального состояния в строке меню для развернутого дочернего окна MDI.
QStyle::CC_CustomBase 0xf0000000 Базовое значение для пользовательских сложных элементов управления. Пользовательские значения должны быть больше этого значения.

См. также SubControl и drawComplexControl().

enum QStyle::ContentsType

Это перечисление описывает доступные типы содержимого. Они используются для вычисления размеров содержимого различных виджетов.

Константа Значение Описание
QStyle::CT_CheckBox 1 Флажок, например, QCheckBox.
QStyle::CT_ComboBox 4 Список выбора, например, QComboBox.
QStyle::CT_HeaderSection 19 Секция заголовка, например, QHeader.
QStyle::CT_LineEdit 14 Поле редактирования, например, QLineEdit.
QStyle::CT_Menu 10 Меню, например, QMenu.
QStyle::CT_MenuBar 9 Строка меню, например, QMenuBar.
QStyle::CT_MenuBarItem 8 Элемент строки меню, например, кнопки в QMenuBar.
QStyle::CT_MenuItem 7 Элемент меню, например, QMenuItem.
QStyle::CT_ProgressBar 6 Индикатор выполнения, например, QProgressBar.
QStyle::CT_PushButton 0 Кнопка, например, QPushButton.
QStyle::CT_RadioButton 2 Переключатель, например, QRadioButton.
QStyle::CT_SizeGrip 16 Маркер изменения размера, например, QSizeGrip.
QStyle::CT_Slider 12 Ползунок, например, QSlider.
QStyle::CT_ScrollBar 13 Полоса прокрутки, например, QScrollBar.
QStyle::CT_SpinBox 15 Поле ввода со списком значений, например, QSpinBox.
QStyle::CT_Splitter 5 Разделитель, например, QSplitter.
QStyle::CT_TabBarTab 11 Вкладка на панели вкладок, например, QTabBar.
QStyle::CT_TabWidget 17 Виджет вкладок, например, QTabWidget.
QStyle::CT_ToolButton 3 Кнопка панели инструментов, например, QToolButton.
QStyle::CT_GroupBox 20 Группа, например, QGroupBox.
QStyle::CT_ItemViewItem 22 Элемент внутри представления элементов.
QStyle::CT_CustomBase 0xf0000000 Базовое значение для пользовательских типов содержимого. Пользовательские значения должны быть больше этого значения.
QStyle::CT_MdiControls 21 Кнопки сворачивания, нормального состояния и закрытия в строке меню для развернутого дочернего окна MDI.

См. также sizeFromContents().

enum QStyle::ControlElement

Это перечисление представляет элемент управления. Элемент управления — это часть виджета, которая выполняет некоторое действие или отображает информацию пользователю.

Постоянная Значение Описание
QStyle::CE_PushButton 0 Кнопка QPushButton, отрисовывает CE_PushButtonBevel, CE_PushButtonLabel и PE_FrameFocusRect.
QStyle::CE_PushButtonBevel 1 Ребро и стандартный индикатор кнопки QPushButton.
QStyle::CE_PushButtonLabel 2 Метка (значок со текстом или пиктограммой) кнопки QPushButton.
QStyle::CE_DockWidgetTitle 30 Заголовок окна причаливания.
QStyle::CE_Splitter 28 Двойной разделитель; также см. QSplitter.
QStyle::CE_CheckBox 3 Флажок QCheckBox, отрисовывает PE_IndicatorCheckBox, CE_CheckBoxLabel и PE_FrameFocusRect.
QStyle::CE_CheckBoxLabel 4 Метка (текст или пиктограмма) флажка QCheckBox.
QStyle::CE_RadioButton 5 Радиокнопка QRadioButton, отрисовывает PE_IndicatorRadioButton, CE_RadioButtonLabel и PE_FrameFocusRect.
QStyle::CE_RadioButtonLabel 6 Метка (текст или пиктограмма) радиокнопки QRadioButton.
QStyle::CE_TabBarTab 7 Вкладка и метка внутри QTabBar.
QStyle::CE_TabBarTabShape 8 Форма вкладки внутри панели вкладок.
QStyle::CE_TabBarTabLabel 9 Метка на вкладке.
QStyle::CE_ProgressBar 10 Полоса прогресса QProgressBar, отрисовывает CE_ProgressBarGroove, CE_ProgressBarContents и CE_ProgressBarLabel.
QStyle::CE_ProgressBarGroove 11 Паз, в котором нарисован индикатор прогресса в QProgressBar.
QStyle::CE_ProgressBarContents 12 Индикатор прогресса QProgressBar.
QStyle::CE_ProgressBarLabel 13 Текстовая метка QProgressBar.
QStyle::CE_ToolButtonLabel 22 Метка кнопки инструмента.
QStyle::CE_MenuBarItem 20 Пункт меню в QMenuBar.
QStyle::CE_MenuBarEmptyArea 21 Пустая область QMenuBar.
QStyle::CE_MenuItem 14 Пункт меню в QMenu.
QStyle::CE_MenuScroller 15 Области прокрутки в QMenu, когда стиль поддерживает прокрутку.
QStyle::CE_MenuTearoff 18 Пункт меню, представляющий отрывной раздел QMenu.
QStyle::CE_MenuEmptyArea 19 Область в меню без пунктов меню.
QStyle::CE_MenuHMargin 17 Дополнительное горизонтальное пространство слева/справа в меню.
QStyle::CE_MenuVMargin 16 Дополнительное вертикальное пространство сверху/снизу в меню.
QStyle::CE_ToolBoxTab 26 Вкладка и метка вкладки инструментов в QToolBox.
QStyle::CE_SizeGrip 27 Маркер изменения размера окна; также см. QSizeGrip.
QStyle::CE_Header 23 Заголовок.
QStyle::CE_HeaderSection 24 Раздел заголовка.
QStyle::CE_HeaderLabel 25 Метка заголовка.
QStyle::CE_ScrollBarAddLine 31 Индикатор увеличения строки полосы прокрутки (т.е. прокрутка вниз); также см. QScrollBar.
QStyle::CE_ScrollBarSubLine 32 Индикатор уменьшения строки полосы прокрутки (т.е. прокрутка вверх).
QStyle::CE_ScrollBarAddPage 33 Индикатор увеличения страницы полосы прокрутки (т.е. прокрутка вниз страницы).
QStyle::CE_ScrollBarSubPage 34 Индикатор уменьшения страницы полосы прокрутки (т.е. прокрутка вверх страницы).
QStyle::CE_ScrollBarSlider 35 Ползунок полосы прокрутки.
QStyle::CE_ScrollBarFirst 36 Индикатор первой строки полосы прокрутки (т.е. начало).
QStyle::CE_ScrollBarLast 37 Индикатор последней строки полосы прокрутки (т.е. конец).
QStyle::CE_RubberBand 29 Резиновая лента, используемая, например, в представлении значков.
QStyle::CE_FocusFrame 38 Рамка фокуса, управляемая стилем.
QStyle::CE_ItemViewItem 45 Элемент внутри представления элементов.
QStyle::CE_CustomBase 0xf0000000 Базовое значение для пользовательских элементов управления; пользовательские значения должны быть больше этого значения.
QStyle::CE_ComboBoxLabel 39 Метка нередактируемого QComboBox.
QStyle::CE_ToolBar 40 Панель инструментов, например, QToolBar.
QStyle::CE_ToolBoxTabShape 41 Форма вкладки панели инструментов.
QStyle::CE_ToolBoxTabLabel 42 Метка вкладки панели инструментов.
QStyle::CE_HeaderEmptyArea 43 Область представления заголовка, где нет разделов заголовка.
QStyle::CE_ShapedFrame 46 Рамка с формой, заданной в QStyleOptionFrame; см. QFrame.

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

перечисление QStyle::PixelMetric

Это перечисление описывает различные доступные пиксельные метрики. Пиксельная метрика — это зависящий от стиля размер, представленный одним значением пикселя.

Постоянная Значение Описание
QStyle::PM_ButtonMargin 0 Количество пробелов между метками кнопок и рамкой.
QStyle::PM_DockWidgetTitleBarButtonMargin 76 Количество пробелов между метками кнопок панели заголовка виджета причаливания и рамкой.
QStyle::PM_ButtonDefaultIndicator 1 Ширина рамки индикатора по умолчанию для кнопки.
QStyle::PM_MenuButtonIndicator 2 Ширина рамки индикатора кнопки меню, пропорциональная высоте виджета.
QStyle::PM_ButtonShiftHorizontal 3 Горизонтальное смещение содержимого кнопки при нажатии.
QStyle::PM_ButtonShiftVertical 4 Вертикальное смещение содержимого кнопки при нажатии.
QStyle::PM_DefaultFrameWidth 5 Ширина рамки по умолчанию (обычно 2).
QStyle::PM_SpinBoxFrameWidth 6 Ширина рамки поля ввода со списком, по умолчанию PM_DefaultFrameWidth.
QStyle::PM_ComboBoxFrameWidth 7 Ширина рамки раскрывающегося списка, по умолчанию PM_DefaultFrameWidth.
QStyle::PM_MDIFrameWidth PM_MdiSubWindowFrameWidth Устарело. Используйте PM_MdiSubWindowFrameWidth вместо этого.
QStyle::PM_MdiSubWindowFrameWidth 44 Ширина рамки окна MDI.
QStyle::PM_MDIMinimizedWidth PM_MdiSubWindowMinimizedWidth Устарело. Используйте PM_MdiSubWindowMinimizedWidth вместо этого.
QStyle::PM_MdiSubWindowMinimizedWidth 45 Ширина минимизированного окна MDI.
QStyle::PM_LayoutLeftMargin 78 По умолчанию левый отступ для QLayout.
QStyle::PM_LayoutTopMargin 79 По умолчанию верхний отступ для QLayout.
QStyle::PM_LayoutRightMargin 80 По умолчанию правый отступ для QLayout.
QStyle::PM_LayoutBottomMargin 81 По умолчанию нижний отступ для QLayout.
QStyle::PM_LayoutHorizontalSpacing 82 По умолчанию горизонтальный интервал для QLayout.
QStyle::PM_LayoutVerticalSpacing 83 По умолчанию вертикальный интервал для QLayout.
QStyle::PM_MaximumDragDistance 8 Максимальное допустимое расстояние между указателем мыши и полосой прокрутки при перетаскивании. Превышение заданного расстояния приведет к возврату ползунка в исходное положение; значение -1 отключает это поведение.
QStyle::PM_ScrollBarExtent 9 Ширина вертикальной полосы прокрутки и высота горизонтальной полосы прокрутки.
QStyle::PM_ScrollBarSliderMin 10 Минимальная высота ползунка вертикальной полосы прокрутки и минимальная ширина ползунка горизонтальной полосы прокрутки.
QStyle::PM_SliderThickness 11 Общая толщина ползунка.
QStyle::PM_SliderControlThickness 12 Толщина ползунка.
QStyle::PM_SliderLength 13 Длина ползунка.
QStyle::PM_SliderTickmarkOffset 14 Смещение между метками и ползунком.
QStyle::PM_SliderSpaceAvailable 15 Доступное пространство для перемещения ползунка.
QStyle::PM_DockWidgetSeparatorExtent 16 Ширина разделителя в горизонтальном окне причаливания и высота разделителя в вертикальном окне причаливания.
QStyle::PM_DockWidgetHandleExtent 17 Ширина ручки в горизонтальном окне причаливания и высота ручки в вертикальном окне причаливания.
QStyle::PM_DockWidgetFrameWidth 18 Ширина рамки окна причаливания.
QStyle::PM_DockWidgetTitleMargin 73 Отступ заголовка окна причаливания.
QStyle::PM_MenuBarPanelWidth 33 Ширина рамки панели меню, по умолчанию PM_DefaultFrameWidth.
QStyle::PM_MenuBarItemSpacing 34 Интервал между элементами панели меню.
QStyle::PM_MenuBarHMargin 36 Интервал между элементами панели меню и левым/правым краем панели.
QStyle::PM_MenuBarVMargin 35 Интервал между элементами панели меню и верхним/нижним краем панели.
QStyle::PM_ToolBarFrameWidth 52 Ширина рамки вокруг панелей инструментов.
QStyle::PM_ToolBarHandleExtent 53 Ширина ручки панели инструментов в горизонтальной панели инструментов и высота ручки в вертикальной панели инструментов.
QStyle::PM_ToolBarItemMargin 55 Интервал между рамкой панели инструментов и элементами.
QStyle::PM_ToolBarItemSpacing 54 Интервал между элементами панели инструментов.
QStyle::PM_ToolBarSeparatorExtent 56 Ширина разделителя панели инструментов в горизонтальной панели инструментов и высота разделителя в вертикальной панели инструментов.
QStyle::PM_ToolBarExtensionExtent 57 Ширина кнопки расширения панели инструментов в горизонтальной панели инструментов и высота кнопки в вертикальной панели инструментов.
QStyle::PM_TabBarTabOverlap 19 Количество пикселей, на которое вкладки должны перекрываться. (В настоящее время используется только в стилях, а не внутри QTabBar)
QStyle::PM_TabBarTabHSpace 20 Дополнительное пространство, добавленное к ширине вкладки.
QStyle::PM_TabBarTabVSpace 21 Дополнительное пространство, добавленное к высоте вкладки.
QStyle::PM_TabBarBaseHeight 22 Высота области между панелью вкладок и страницами вкладок.
QStyle::PM_TabBarBaseOverlap 23 Количество пикселей, на которое панель вкладок перекрывает базовую панель вкладок.
QStyle::PM_TabBarScrollButtonWidth 51
QStyle::PM_TabBarTabShiftHorizontal 49 Горизонтальное смещение пикселей при выборе вкладки.
QStyle::PM_TabBarTabShiftVertical 50 Вертикальное смещение пикселей при выборе вкладки.
QStyle::PM_ProgressBarChunkWidth 24 Ширина блока в индикаторе полосы прогресса.
QStyle::PM_SplitterWidth 25 Ширина разделителя.
QStyle::PM_TitleBarHeight 26 Высота панели заголовка.
QStyle::PM_IndicatorWidth 37 Ширина индикатора флажка.
QStyle::PM_IndicatorHeight 38 Высота индикатора флажка.
QStyle::PM_ExclusiveIndicatorWidth 39 Ширина индикатора радиокнопки.
QStyle::PM_ExclusiveIndicatorHeight 40 Высота индикатора радиокнопки.
QStyle::PM_MenuPanelWidth 30 Ширина рамки (применяется ко всем сторонам) для QMenu.
QStyle::PM_MenuHMargin 28 Дополнительная рамка (используется слева и справа) для QMenu.
QStyle::PM_MenuVMargin 29 Дополнительная рамка (используется для нижней и верхней части) для QMenu.
QStyle::PM_MenuScrollerHeight 27 Высота области прокрутки в QMenu.
QStyle::PM_MenuTearoffHeight 31 Высота области отрыва в QMenu.
QStyle::PM_MenuDesktopFrameWidth 32 Ширина рамки меню на рабочем столе.
QStyle::PM_HeaderMarkSize 47 Размер индикатора сортировки в заголовке.
QStyle::PM_HeaderGripMargin 48 Размер маркеры изменения размера в заголовке.
QStyle::PM_HeaderMargin 46 Размер отступа между индикатором сортировки и текстом.
QStyle::PM_SpinBoxSliderHeight 58 Высота слайдера дополнительного поля ввода.
QStyle::PM_ToolBarIconSize 62 Размер значка панели инструментов по умолчанию.
QStyle::PM_SmallIconSize 65 Размер маленького значка по умолчанию.
QStyle::PM_LargeIconSize 66 Размер большого значка по умолчанию.
QStyle::PM_FocusFrameHMargin 68 Горизонтальный отступ, на который рамка фокуса сместит виджет.
QStyle::PM_FocusFrameVMargin 67 Вертикальный отступ, на который рамка фокуса сместит виджет.
QStyle::PM_IconViewIconSize 64 Размер значков по умолчанию в представлении значков.
QStyle::PM_ListViewIconSize 63 Размер значков по умолчанию в списке представлений.
QStyle::PM_ToolTipLabelFrameWidth 69 Ширина рамки метки всплывающей подсказки.
QStyle::PM_CheckBoxLabelSpacing 70 Отступ между индикатором флажка и его меткой.
QStyle::PM_RadioButtonLabelSpacing 77 Отступ между индикатором радиокнопки и его меткой.
QStyle::PM_TabBarIconSize 71 Размер значка по умолчанию для панели вкладок.
QStyle::PM_SizeGripSize 72 Размер маркера изменения размера.
QStyle::PM_MessageBoxIconSize 74 Размер стандартных значков в окне сообщения.
QStyle::PM_ButtonIconSize 75 Размер значков кнопок по умолчанию.
QStyle::PM_TextCursorWidth 85 Ширина курсора в строке редактирования или поле редактирования текста.
QStyle::PM_TabBar_ScrollButtonOverlap 84 Расстояние между левой и правой кнопками на панели вкладок.
QStyle::PM_TabCloseIndicatorWidth 86 Ширина кнопки закрытия по умолчанию на вкладке на панели вкладок.
QStyle::PM_TabCloseIndicatorHeight 87 Высота кнопки закрытия по умолчанию на вкладке на панели вкладок.
QStyle::PM_ScrollView_ScrollBarSpacing 88 Расстояние между рамкой и полосой прокрутки при установке SH_ScrollView_FrameOnlyAroundContents.
QStyle::PM_ScrollView_ScrollBarOverlap 89 Перекрытие между полосами прокрутки и содержимым прокрутки.
QStyle::PM_SubMenuOverlap 90 Горизонтальное перекрытие между подменю и его родительским элементом.
QStyle::PM_TreeViewIndentation 91 Отступ элементов в представлении дерева. Эта перечисление значение было добавлено в Qt 5.4.
QStyle::PM_HeaderDefaultSectionSizeHorizontal 92 Размер по умолчанию разделов в горизонтальной заголовке. Это перечисление значение было добавлено в Qt 5.5.
QStyle::PM_HeaderDefaultSectionSizeVertical 93 Размер по умолчанию разделов в вертикальной заголовке. Это перечисление значение было добавлено в Qt 5.5.
QStyle::PM_TitleBarButtonIconSize 94 Размер значков кнопок на панели заголовка. Это перечисление значение было добавлено в Qt 5.8.
QStyle::PM_TitleBarButtonSize 95 Размер кнопок на панели заголовка. Это перечисление значение было добавлено в Qt 5.8.
QStyle::PM_CustomBase 0xf0000000 Базовое значение для настраиваемых пиксельных метрик. Настраиваемые значения должны быть больше этого значения.

Следующие значения устарели:

Константа Значение Описание
QStyle::PM_DefaultTopLevelMargin 59 Используйте PM_LayoutLeftMargin, PM_LayoutTopMargin, PM_LayoutRightMargin и PM_LayoutBottomMargin вместо этого.
QStyle::PM_DefaultChildMargin 60 Используйте PM_LayoutLeftMargin, PM_LayoutTopMargin, PM_LayoutRightMargin и PM_LayoutBottomMargin вместо этого.
QStyle::PM_DefaultLayoutSpacing 61 Используйте PM_LayoutHorizontalSpacing и PM_LayoutVerticalSpacing вместо этого.

См. также pixelMetric().

enum QStyle::PrimitiveElement

Это перечисление описывает различные примитивные элементы. Примитивный элемент — это общий элемент графического интерфейса, такой как индикатор флажка или фаска кнопки.

Константа Значение Описание
QStyle::PE_FrameStatusBar 7 Устаревшее. Используйте PE_FrameStatusBarItem вместо него.
QStyle::PE_PanelButtonCommand 13 Кнопка для запуска действия, например, QPushButton.
QStyle::PE_FrameDefaultButton 1 Эта рамка вокруг стандартной кнопки, например, в диалоговом окне.
QStyle::PE_PanelButtonBevel 14 Общая панель с выступами кнопки.
QStyle::PE_PanelButtonTool 15 Панель для кнопки инструмента, используемой с QToolButton.
QStyle::PE_PanelLineEdit 18 Панель для QLineEdit.
QStyle::PE_IndicatorButtonDropDown 24 Индикатор для раскрывающейся кнопки, например, кнопки инструмента, отображающей меню.
QStyle::PE_FrameFocusRect 3 Универсальный индикатор фокуса.
QStyle::PE_IndicatorArrowUp 22 Универсальная стрелка вверх.
QStyle::PE_IndicatorArrowDown 19 Универсальная стрелка вниз.
QStyle::PE_IndicatorArrowRight 21 Универсальная стрелка вправо.
QStyle::PE_IndicatorArrowLeft 20 Универсальная стрелка влево.
QStyle::PE_IndicatorSpinUp 35 Символ вверх для виджета скроллинга, например, QSpinBox.
QStyle::PE_IndicatorSpinDown 32 Символ вниз для виджета скроллинга.
QStyle::PE_IndicatorSpinPlus 34 Символ увеличения для виджета скроллинга.
QStyle::PE_IndicatorSpinMinus 33 Символ уменьшения для виджета скроллинга.
QStyle::PE_IndicatorItemViewItemCheck PE_IndicatorViewItemCheck Индикатор включения/выключения для элемента представления.
QStyle::PE_IndicatorCheckBox 26 Индикатор включения/выключения, например, QCheckBox.
QStyle::PE_IndicatorRadioButton 31 Индикатор эксклюзивного включения/выключения, например, QRadioButton.
QStyle::PE_IndicatorDockWidgetResizeHandle 27 Маркер изменения размера для окон док-станции.
QStyle::PE_Frame 0 Общая рамка
QStyle::PE_FrameMenu 6 Рамка для всплывающих окон/меню; также см. QMenu.
QStyle::PE_PanelMenuBar 16 Панель для строчных меню.
QStyle::PE_PanelScrollAreaCorner 40 Панель в нижнем правом (или нижнем левом) углу области прокрутки.
QStyle::PE_FrameDockWidget 2 Рамка панели для окон док-станции и панелей инструментов.
QStyle::PE_FrameTabWidget 8 Рамка для виджетов вкладок.
QStyle::PE_FrameLineEdit 5 Панель-рамка для редактирования строк.
QStyle::PE_FrameGroupBox 4 Панель-рамка вокруг групповых коробок.
QStyle::PE_FrameButtonBevel 10 Панель-рамка с выступами кнопки.
QStyle::PE_FrameButtonTool 11 Панель-рамка для кнопки инструмента.
QStyle::PE_IndicatorHeaderArrow 28 Стрелка, используемая для указания сортировки в списке или заголовке таблицы.
QStyle::PE_FrameStatusBarItem PE_FrameStatusBar Рамка для элемента строки состояния; также см. QStatusBar.
QStyle::PE_FrameWindow 9 Рамка вокруг окна MDI или окна док-станции.
QStyle::PE_IndicatorMenuCheckMark 29 Отметка галочки, используемая в меню.
QStyle::PE_IndicatorProgressChunk 30 Секция индикатора полосы прогресса; также см. QProgressBar.
QStyle::PE_IndicatorBranch 23 Линии, используемые для представления ветви дерева в представлении дерева.
QStyle::PE_IndicatorToolBarHandle 36 Маркер панели инструментов.
QStyle::PE_IndicatorToolBarSeparator 37 Разделитель на панели инструментов.
QStyle::PE_PanelToolBar 17 Панель для панели инструментов.
QStyle::PE_PanelTipLabel 38 Панель для метки подсказки.
QStyle::PE_FrameTabBarBase 12 Рамка, нарисованная для панели вкладок, обычно нарисованная для панели вкладок, которая не является частью виджета вкладок.
QStyle::PE_IndicatorTabTear 39 Устарело. Используйте PE_IndicatorTabTearLeft вместо этого.
QStyle::PE_IndicatorTabTearLeft PE_IndicatorTabTear Индикатор, что вкладка частично прокручена влево от видимой панели вкладок, когда вкладок много.
QStyle::PE_IndicatorTabTearRight 49 Индикатор, что вкладка частично прокручена вправо от видимой панели вкладок, когда вкладок много.
QStyle::PE_IndicatorColumnViewArrow 42 Стрелка в QColumnView.
QStyle::PE_Widget 41 Простой QWidget.
QStyle::PE_CustomBase 0xf000000 Базовое значение для пользовательских примитивных элементов. Все значения выше этого зарезервированы для пользовательского использования. Пользовательские значения должны быть больше этого значения.
QStyle::PE_IndicatorItemViewItemDrop 43 Индикатор, отображаемый, когда элемент в представлении элементов приближается к падению во время операции перетаскивания в представлении элементов.
QStyle::PE_PanelItemViewItem 44 Фон элемента в представлении элементов.
QStyle::PE_PanelItemViewRow 45 Фон строки в представлении элементов.
QStyle::PE_PanelStatusBar 46 Панель для строки состояния.
QStyle::PE_IndicatorTabClose 47 Кнопка закрытия на панели вкладок.
QStyle::PE_PanelMenu 48 Панель для меню.

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

перечисление QStyle::RequestSoftwareInputPanel

Это перечисление описывает условия, при которых виджеты, поддерживающие ввод, запросят программную панель ввода.

Константа Значение Описание
QStyle::RSIP_OnMouseClickAndAlreadyFocused 0 Запрашивает панель ввода, если пользователь щелкнул по виджету, но только если он уже сфокусирован.
QStyle::RSIP_OnMouseClick 1 Запрашивает панель ввода, если пользователь щелкнул по виджету.

См. также QInputMethod.

перечисление QStyle::StandardPixmap

Этот перечисление описывает доступные стандартные пиксельмапы. Стандартная пиксельмапа — это пиксельмапа, которая может следовать некоторым существующим стилям или рекомендациям интерфейса.

Константа Значение Описание
QStyle::SP_TitleBarMinButton 1 Кнопка минимизации на панели заголовка (например, в QMdiSubWindow).
QStyle::SP_TitleBarMenuButton 0 Кнопка меню на панели заголовка.
QStyle::SP_TitleBarMaxButton 2 Кнопка максимизации на панели заголовка.
QStyle::SP_TitleBarCloseButton 3 Кнопка закрытия на панели заголовка.
QStyle::SP_TitleBarNormalButton 4 Кнопка нормального (восстановления) размера на панели заголовка.
QStyle::SP_TitleBarShadeButton 5 Кнопка затемнения на панели заголовка.
QStyle::SP_TitleBarUnshadeButton 6 Кнопка отмены затемнения на панели заголовка.
QStyle::SP_TitleBarContextHelpButton 7 Кнопка справки по контексту на панели заголовка.
QStyle::SP_MessageBoxInformation 9 Иконка «информация».
QStyle::SP_MessageBoxWarning 10 Иконка «предупреждение».
QStyle::SP_MessageBoxCritical 11 Иконка «критическая ошибка».
QStyle::SP_MessageBoxQuestion 12 Иконка «вопрос».
QStyle::SP_DesktopIcon 13 Иконка «рабочий стол».
QStyle::SP_TrashIcon 14 Иконка «корзина».
QStyle::SP_ComputerIcon 15 Иконка «Мой компьютер».
QStyle::SP_DriveFDIcon 16 Иконка дискеты.
QStyle::SP_DriveHDIcon 17 Иконка жёсткого диска.
QStyle::SP_DriveCDIcon 18 Иконка CD.
QStyle::SP_DriveDVDIcon 19 Иконка DVD.
QStyle::SP_DriveNetIcon 20 Иконка сети.
QStyle::SP_DirHomeIcon 56 Иконка домашней папки.
QStyle::SP_DirOpenIcon 21 Иконка открытой папки.
QStyle::SP_DirClosedIcon 22 Иконка закрытой папки.
QStyle::SP_DirIcon 38 Иконка папки.
QStyle::SP_DirLinkIcon 23 Иконка ссылки на папку.
QStyle::SP_DirLinkOpenIcon 24 Иконка ссылки на открытую папку.
QStyle::SP_FileIcon 25 Иконка файла.
QStyle::SP_FileLinkIcon 26 Иконка ссылки на файл.
QStyle::SP_FileDialogStart 29 Иконка «начать» в диалоге выбора файла.
QStyle::SP_FileDialogEnd 30 Иконка «завершить» в диалоге выбора файла.
QStyle::SP_FileDialogToParent 31 Иконка «родительская папка» в диалоге выбора файла.
QStyle::SP_FileDialogNewFolder 32 Иконка «создать новую папку» в диалоге выбора файла.
QStyle::SP_FileDialogDetailedView 33 Иконка «детали» в диалоге выбора файла.
QStyle::SP_FileDialogInfoView 34 Иконка «информация о файле» в диалоге выбора файла.
QStyle::SP_FileDialogContentsView 35 Иконка «содержание» в диалоге выбора файла.
QStyle::SP_FileDialogListView 36 Иконка «список» в диалоге выбора файла.
QStyle::SP_FileDialogBack 37 Стрелка назад в диалоге выбора файла.
QStyle::SP_DockWidgetCloseButton 8 Кнопка закрытия в окнах панели инструментов (см. также QDockWidget).
QStyle::SP_ToolBarHorizontalExtensionButton 27 Кнопка расширения для горизонтальных панелей инструментов.
QStyle::SP_ToolBarVerticalExtensionButton 28 Кнопка расширения для вертикальных панелей инструментов.
QStyle::SP_DialogOkButton 39 Иконка стандартной кнопки «ОК» в QDialogButtonBox.
QStyle::SP_DialogCancelButton 40 Иконка стандартной кнопки «Отмена» в QDialogButtonBox.
QStyle::SP_DialogHelpButton 41 Иконка стандартной кнопки «Справка» в QDialogButtonBox.
QStyle::SP_DialogOpenButton 42 Иконка стандартной кнопки «Открыть» в QDialogButtonBox.
QStyle::SP_DialogSaveButton 43 Иконка стандартной кнопки «Сохранить» в QDialogButtonBox.
QStyle::SP_DialogCloseButton 44 Иконка стандартной кнопки «Закрыть» в QDialogButtonBox.
QStyle::SP_DialogApplyButton 45 Иконка стандартной кнопки «Применить» в QDialogButtonBox.
QStyle::SP_DialogResetButton 46 Иконка стандартной кнопки «Сбросить» в QDialogButtonBox.
QStyle::SP_DialogDiscardButton 47 Иконка стандартной кнопки «Отменить» в QDialogButtonBox.
QStyle::SP_DialogYesButton 48 Иконка стандартной кнопки «Да» в QDialogButtonBox.
QStyle::SP_DialogNoButton 49 Иконка стандартной кнопки «Нет» в QDialogButtonBox.
QStyle::SP_ArrowUp 50 Иконка стрелки вверх.
QStyle::SP_ArrowDown 51 Иконка стрелки вниз.
QStyle::SP_ArrowLeft 52 Иконка стрелки влево.
QStyle::SP_ArrowRight 53 Иконка стрелки вправо.
QStyle::SP_ArrowBack 54 Эквивалентно SP_ArrowLeft, когда текущее направление макета Qt::LeftToRight, в противном случае SP_ArrowRight.
QStyle::SP_ArrowForward 55 Эквивалентно SP_ArrowRight, когда текущее направление макета Qt::LeftToRight, в противном случае SP_ArrowLeft.
QStyle::SP_CommandLink 57 Иконка, используемая для обозначения значка ссылки команды в стиле Vista.
QStyle::SP_VistaShield 58 Иконка, используемая для обозначения запросов UAC в Windows Vista. Вернёт пустое изображение или значок на всех других платформах.
QStyle::SP_BrowserReload 59 Иконка, указывающая на необходимость перезагрузки текущей страницы.
QStyle::SP_BrowserStop 60 Значок, указывающий на то, что загрузка страницы должна остановиться.
QStyle::SP_MediaPlay 61 Значок, указывающий на то, что воспроизведение медиа должно начаться.
QStyle::SP_MediaStop 62 Значок, указывающий на то, что воспроизведение медиа должно остановиться.
QStyle::SP_MediaPause 63 Значок, указывающий на то, что воспроизведение медиа должно приостановиться.
QStyle::SP_MediaSkipForward 64 Значок, указывающий на то, что медиа должно перейти вперёд.
QStyle::SP_MediaSkipBackward 65 Значок, указывающий на то, что медиа должно перейти назад.
QStyle::SP_MediaSeekForward 66 Значок, указывающий на то, что медиа должно перемотать вперёд.
QStyle::SP_MediaSeekBackward 67 Значок, указывающий на то, что медиа должно перемотать назад.
QStyle::SP_MediaVolume 68 Значок, указывающий на управление громкостью.
QStyle::SP_MediaVolumeMuted 69 Значок, указывающий на выключенную громкость.
QStyle::SP_LineEditClearButton 70 Значок стандартной кнопки очистки в QLineEdit. Это значение перечисления было добавлено в Qt 5.2.
QStyle::SP_CustomBase 0xf0000000 Базовое значение для пользовательских стандартных значков; пользовательские значения должны быть больше этого значения.

См. также standardIcon().

enum QStyle::StateFlagflags QStyle::State

Это перечисление описывает флаги, используемые при рисовании примитивных элементов.

Обратите внимание, что не все примитивы используют все эти флаги, и флаги могут иметь разный смысл для разных элементов.

Постоянная Значение Описание
QStyle::State_None QStyle::State_None Указывает, что виджет не имеет состояния.
QStyle::State_Active 0x00010000 Указывает, что виджет активен.
QStyle::State_AutoRaise 0x00001000 Используется для указания, следует ли использовать внешний вид автоматического подъёма на кнопке инструмента.
QStyle::State_Children 0x00080000 Используется для указания, имеет ли ветвь элемента представления дочерние элементы.
QStyle::State_DownArrow 0x00000040 Используется для указания, должен ли быть виден стрелка вниз на виджете.
QStyle::State_Editing 0x00400000 Используется для указания, открыт ли редактор на виджете.
QStyle::State_Enabled 0x00000001 Используется для указания, если виджет активирован.
QStyle::State_HasEditFocus 0x01000000 Используется для указания, имеет ли виджет в настоящее время фокус редактирования.
QStyle::State_HasFocus 0x00000100 Используется для указания, имеет ли виджет фокус.
QStyle::State_Horizontal 0x00000080 Используется для указания, выровнен ли виджет, например, по горизонтали, как панель инструментов.
QStyle::State_KeyboardFocusChange 0x00800000 Используется для указания, был ли фокус изменен с помощью клавиатуры, например, Tab, Backtab или сочетанием клавиш.
QStyle::State_MouseOver 0x00002000 Используется для указания, находится ли виджет под курсором мыши.
QStyle::State_NoChange 0x00000010 Используется для указания трехпозиционного флажка.
QStyle::State_Off 0x00000008 Используется для указания, если виджет не выбран.
QStyle::State_On 0x00000020 Используется для указания, если виджет выбран.
QStyle::State_Raised 0x00000002 Используется для указания, если кнопка поднята.
QStyle::State_ReadOnly 0x02000000 Используется для указания, если виджет только для чтения.
QStyle::State_Selected 0x00008000 Используется для указания, если виджет выбран.
QStyle::State_Item 0x00100000 Используется представлениями элементов для указания, если должна быть нарисована горизонтальная ветвь.
QStyle::State_Open 0x00040000 Используется представлениями элементов для указания, если ветвь дерева открыта.
QStyle::State_Sibling 0x00200000 Используется представлениями элементов для указания, если должна быть нарисована вертикальная линия (для родственных элементов).
QStyle::State_Sunken 0x00000004 Используется для указания, если виджет западает или нажат.
QStyle::State_UpArrow 0x00004000 Используется для указания, должен ли быть виден символ вверх на виджете.
QStyle::State_Mini 0x08000000 Используется для указания мини-стиля виджета или кнопки Mac.
QStyle::State_Small 0x04000000 Используется для указания малого стиля виджета или кнопки Mac.

Тип State — это псевдоним для QFlags<StateFlag>. Он хранит комбинацию значений StateFlag с операцией ИЛИ.

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

enum QStyle::StyleHint

Это перечисление описывает доступные подсказки стиля. Подсказка стиля — это общая подсказка по внешнему виду и/или ощущению.

Константа Значение Описание
QStyle::SH_EtchDisabledText 0 Текст в отключенном состоянии «выгравирован», как на Windows.
QStyle::SH_DitherDisabledText 1 Текст в отключенном состоянии затемнен, как на Motif.
QStyle::SH_ScrollBar_ContextMenu 62 Наличие контекстного меню в полосе прокрутки.
QStyle::SH_ScrollBar_MiddleClickAbsolutePosition 2 Логическое значение. Если истинно, средний клик на полосе прокрутки перемещает ползунок в указанную позицию. Если ложно, средний клик игнорируется.
QStyle::SH_ScrollBar_LeftClickAbsolutePosition 39 Логическое значение. Если истинно, левый клик на полосе прокрутки перемещает ползунок в указанную позицию. Если ложно, левый клик ведет себя соответствующим образом для каждого элемента управления.
QStyle::SH_ScrollBar_ScrollWhenPointerLeavesControl 3 Логическое значение. Если истинно, при нажатии на полосу прокрутки SubControl, удерживании кнопки мыши и перемещении указателя за пределы SubControl, прокрутка полосы продолжается. Если ложно, прокрутка останавливается, когда указатель покидает SubControl.
QStyle::SH_ScrollBar_RollBetweenButtons 63 Логическое значение. Если истинно, при нажатии на кнопку полосы прокрутки (SC_ScrollBarAddLine или SC_ScrollBarSubLine) и перетаскивании к противоположной кнопке (прокрутка) будет нажата новая кнопка, а старая отпущена. При ложном значении, исходная кнопка отпускается, и ничего не происходит (как при нажатии на обычную кнопку).
QStyle::SH_TabBar_Alignment 5 Выравнивание вкладок в QTabWidget. Возможные значения: Qt::AlignLeft, Qt::AlignCenter и Qt::AlignRight.
QStyle::SH_Header_ArrowAlignment 6 Положение индикатора сортировки в заголовках списков или таблиц. Возможные значения — значения Qt::Alignment (т. е. логическое ИЛИ комбинация флагов Qt::AlignmentFlag).
QStyle::SH_Slider_SnapToValue 7 Ползунки подстраиваются под значения во время перемещения, как на Windows.
QStyle::SH_Slider_SloppyKeyEvents 8 Обработка нажатий клавиш происходит нестрого, т. е. левый клик на вертикальном ползунке уменьшает значение на одну строку.
QStyle::SH_ProgressDialog_CenterCancelButton 9 Центрирование кнопки на диалогах прогресса, иначе выравнивание по правому краю.
QStyle::SH_ProgressDialog_TextLabelAlignment 10 Выравнивание текстовых меток на диалогах прогресса; Qt::AlignCenter на Windows, Qt::AlignVCenter в противном случае.
QStyle::SH_PrintDialog_RightAlignButtons 11 Кнопки выравниваются по правому краю в диалоге печати, как на Windows.
QStyle::SH_MainWindow_SpaceBelowMenuBar 12 Один или два пикселя между строкой меню и областью размещения, как на Windows.
QStyle::SH_FontDialog_SelectAssociatedText 13 Выделение текста в поле редактирования, при выборе элемента из списка или при получении фокуса полем редактирования, как на Windows.
QStyle::SH_Menu_KeyboardSearch 66 Ввод текста инициирует поиск соответствующих элементов в меню, в противном случае рассматривается только мнемоника.
QStyle::SH_Menu_AllowActiveAndDisabled 14 Разрешает активность отключенных пунктов меню.
QStyle::SH_Menu_SpaceActivatesItem 15 Нажатие клавиши пробела активирует пункт, как на Motif.
QStyle::SH_Menu_SubMenuPopupDelay 16 Время ожидания в миллисекундах перед открытием подменю (256 на Windows, 96 на Motif).
QStyle::SH_Menu_Scrollable 30 Поддержка прокрутки в всплывающих меню.
QStyle::SH_Menu_SloppySubMenus 33 Поддержка перемещения указателя мыши в подменю при пересечении других пунктов меню. Поддерживается на большинстве современных настольных платформ.
QStyle::SH_Menu_SubMenuUniDirection 106 С Qt 5.5. Если курсор должен перемещаться к подменю (как на macOS), или если курсор может перемещаться в любом направлении, пока не достигнет подменю до истечения времени ожидания.
QStyle::SH_Menu_SubMenuUniDirectionFailCount 107 С Qt 5.5. Когда определен SH_Menu_SubMenuUniDirection, этот перечисление определяет количество неудачных перемещений курсора перед отбрасыванием подменю, которое поддерживает движение в одном направлении. Это может быть использовано для управления «строгостью» алгоритма движения в одном направлении.
QStyle::SH_Menu_SubMenuSloppySelectOtherActions 108 С Qt 5.5. Должны ли быть выбраны другие пункты действий, когда курсор перемещается к подменю, поддерживающему движение в одном направлении?
QStyle::SH_Menu_SubMenuSloppyCloseTimeout 109 С Qt 5.5. Время ожидания для закрытия подменю, поддерживающего движение в одном направлении.
QStyle::SH_Menu_SubMenuResetWhenReenteringParent 110 С Qt 5.5. При переходе из дочернего подменю в родительское, должно ли состояние «движение в одном направлении» сбрасываться, эффективно закрывая дочернее подменю и делая активным текущее подменю?
QStyle::SH_Menu_SubMenuDontStartSloppyOnLeave 111 С Qt 5.5. Не запускать таймеры «движение в одном направлении», когда указатель мыши покидает подменю.
QStyle::SH_ScrollView_FrameOnlyAroundContents 17 Отображение рамки прокручиваемых областей только вокруг содержимого (как в Motif), или вокруг содержимого, полос прокрутки и угловых элементов (как в Windows).
QStyle::SH_MenuBar_AltKeyNavigation 18 Пункты меню можно переключать, нажав Alt и используя стрелки для выбора желаемого пункта.
QStyle::SH_ComboBox_ListMouseTracking 19 Отслеживание перемещения мыши в раскрывающихся списках раскрывающегося списка.
QStyle::SH_Menu_MouseTracking 20 Отслеживание перемещения мыши в всплывающих меню.
QStyle::SH_MenuBar_MouseTracking 21 Отслеживание перемещения мыши в строках меню.
QStyle::SH_Menu_FillScreenWithScroll 45 Всплывающие меню должны заполнять весь экран при прокрутке.
QStyle::SH_Menu_SelectionWrap 74 Всплывающие меню должны допускать циклическое выбор элементов, то есть при выборе последнего пункта выбирается первый.
QStyle::SH_ItemView_ChangeHighlightOnFocus 22 Отключение выделенных элементов при потере фокуса.
QStyle::SH_Widget_ShareActivation 23 Включение совместной активации с плавающими безадресными диалогами.
QStyle::SH_TabBar_SelectMouseType 4 Какой тип события мыши должен вызывать выбор вкладки.
QStyle::SH_ListViewExpand_SelectMouseType 40 Какой тип события мыши должен вызывать выбор расширения списка.
QStyle::SH_TabBar_PreferNoArrows 38 Должна ли панель вкладок предлагать размер, чтобы избежать появления стрелок прокрутки.
QStyle::SH_ComboBox_Popup 25 Разрешение использования всплывающих меню в качестве выпадающего списка раскрывающегося списка раскрывающегося списка.
QStyle::SH_Workspace_FillSpaceOnMaximize 24 Рабочая область должна максимизировать область клиента.
QStyle::SH_TitleBar_NoBorder 26 Строка заголовка не имеет границы.
QStyle::SH_ScrollBar_StopMouseOverSlider SH_Slider_StopMouseOverSlider Устарело. Используйте SH_Slider_StopMouseOverSlider вместо него.
QStyle::SH_Slider_StopMouseOverSlider 27 Остановка автоматического повторения, когда ползунок достигает положения курсора.
QStyle::SH_BlinkCursorWhenTextSelected 28 Мигание курсора при выделении текста.
QStyle::SH_RichText_FullWidthSelection 29 Влияет ли выделение richtext на всю ширину документа.
QStyle::SH_GroupBox_TextLabelVerticalAlignment 31 Как вертикально выравнивать текстовую метку групповой рамки.
QStyle::SH_GroupBox_TextLabelColor 32 Как рисовать текстовую метку групповой рамки.
QStyle::SH_DialogButtons_DefaultButton 36 Какая кнопка получает состояние по умолчанию в виджете кнопок диалога.
QStyle::SH_ToolBox_SelectedPageTitleBold 37 Жирность выделенного заголовка страницы в QToolBox.
QStyle::SH_LineEdit_PasswordCharacter 35 Символ Юникода, используемый для паролей.
QStyle::SH_LineEdit_PasswordMaskDelay 104 Определяет задержку перед маскировкой видимого символа символом пароля в миллисекундах. Эта перечисление добавлена в Qt 5.4.
QStyle::SH_Table_GridLineColor 34 Значение RGB сетки для таблицы.
QStyle::SH_UnderlineShortcut 41 Подчеркивать ли сочетания клавиш.
QStyle::SH_SpellCheckUnderlineStyle 72 Устаревшее. Используйте подсказку SpellCheckUnderlineStyle в QPlatformTheme вместо этого.
QStyle::SH_SpinBox_AnimateButton 42 Анимировать щелчок при нажатии вверх или вниз в спинбоксе.
QStyle::SH_SpinBox_KeyPressAutoRepeatRate 43 Интервал автоповтора для нажатий клавиш в спинбоксе.
QStyle::SH_SpinBox_ClickAutoRepeatRate 44 Интервал автоповтора для щелчков мышью в спинбоксе.
QStyle::SH_SpinBox_ClickAutoRepeatThreshold 84 Пороговое значение автоповтора для щелчков мышью в спинбоксе.
QStyle::SH_ToolTipLabel_Opacity 46 Целое число, указывающее непрозрачность метки подсказки; 0 — полностью прозрачная, 255 — полностью непрозрачная.
QStyle::SH_DrawMenuBarSeparator 47 Указывает, рисует ли меню-строка разделители.
QStyle::SH_TitleBar_ModifyNotification 48 Указывает, должен ли заголовок отображать '*' для изменённых окон.
QStyle::SH_Button_FocusPolicy 49 Политика фокуса по умолчанию для кнопок.
QStyle::SH_CustomBase 0xf0000000 Базовое значение для пользовательских подсказок стиля. Пользовательские значения должны быть больше этого значения.
QStyle::SH_MessageBox_UseBorderForButtonSpacing 50 Логическое значение, указывающее, использовать ли границу кнопок (вычисляется как половина высоты кнопки) для отступа кнопки в окне сообщения.
QStyle::SH_MessageBox_CenterButtons 73 Логическое значение, указывающее, должны ли кнопки в окне сообщения центрироваться (см. QDialogButtonBox::setCentered()).
QStyle::SH_MessageBox_TextInteractionFlags 70 Логическое значение, указывающее, могут ли текст в окне сообщения разрешать взаимодействия пользователя (например, выбор) или нет.
QStyle::SH_TitleBar_AutoRaise 51 Логическое значение, указывающее, должны ли элементы управления на панели заголовка обновляться при наведении курсора.
QStyle::SH_ToolButton_PopupDelay 52 Целое число, указывающее задержку всплытия в миллисекундах для меню, прикреплённых к кнопкам инструментов.
QStyle::SH_FocusFrame_Mask 53 Маска рамки фокуса.
QStyle::SH_RubberBand_Mask 54 Маска резинового прямоугольника.
QStyle::SH_WindowFrame_Mask 55 Маска рамки окна.
QStyle::SH_SpinControls_DisableOnBounds 56 Определяет, будут ли элементы управления спинбоксом отображаться как отключённые при достижении границ диапазона спинбокса.
QStyle::SH_Dial_BackgroundRole 57 Определяет предпочтительную роль фона стиля (как QPalette::ColorRole) для виджета циферблата.
QStyle::SH_ComboBox_LayoutDirection 58 Направление макета для комбинации. По умолчанию оно должно совпадать с указанным в переменной QStyleOption::direction.
QStyle::SH_ItemView_EllipsisLocation 59 Место добавления многоточия для текста элемента, который слишком длинный, чтобы поместиться в элементе просмотра.
QStyle::SH_ItemView_ShowDecorationSelected 60 При выделении элемента в представлении элементов также подсвечивать ветвь или другие декорации.
QStyle::SH_ItemView_ActivateItemOnSingleClick 61 Вызывать сигнал activated, когда пользователь один раз щелкает по элементу в представлении элементов. В противном случае сигнал вызывается при двойном щелчке по элементу.
QStyle::SH_Slider_AbsoluteSetButtons 64 Какие кнопки мыши устанавливают значение ползунка в позицию, по которой щелкнули.
QStyle::SH_Slider_PageSetButtons 65 Какие кнопки мыши вызывают скроллирование значения ползунка.
QStyle::SH_TabBar_ElideMode 67 Стиль обрезки по умолчанию для панели вкладок.
QStyle::SH_DialogButtonLayout 68 Управление расположением кнопок в QDialogButtonBox, возвращает перечисление QDialogButtonBox::ButtonLayout.
QStyle::SH_WizardStyle 79 Управление внешним видом и ощущением QWizard. Возвращает перечисление QWizard::WizardStyle.
QStyle::SH_FormLayoutWrapPolicy 86 Предлагает значение по умолчанию для того, как строки обёртываются в QFormLayout. Возвращает перечисление QFormLayout::RowWrapPolicy.
QStyle::SH_FormLayoutFieldGrowthPolicy 89 Предлагает значение по умолчанию для того, как поля могут увеличиваться в QFormLayout. Возвращает перечисление QFormLayout::FieldGrowthPolicy.
QStyle::SH_FormLayoutFormAlignment 90 Предлагает значение по умолчанию для того, как QFormLayout выравнивает содержимое в доступном пространстве. Возвращает перечисление Qt::Alignment.
QStyle::SH_FormLayoutLabelAlignment 91 Предлагает значение по умолчанию для того, как QFormLayout выравнивает метки в доступном пространстве. Возвращает перечисление Qt::Alignment.
QStyle::SH_ItemView_ArrowKeysNavigateIntoChildren 80 Определяет, будет ли представление дерева выбирать первый дочерний элемент при его раскрытии и нажатии правой стрелки.
QStyle::SH_ComboBox_PopupFrameStyle 69 Стиль рамки, используемый при рисовании всплывающего меню combobox.
QStyle::SH_DialogButtonBox_ButtonsHaveIcons 71 Указывает, будут ли StandardButtons в QDialogButtonBox иметь значки или нет.
QStyle::SH_ItemView_MovementWithoutUpdatingSelection 75 Представление элементов может указать текущий элемент без изменения выделения.
QStyle::SH_ToolTip_Mask 76 Маска всплывающей подсказки.
QStyle::SH_FocusFrame_AboveWidget 77 Рамка фокуса расположена поверх виджета, на котором она «фокусируется».
QStyle::SH_TextControl_FocusIndicatorTextCharFormat 78 Указывает формат текста, используемый для выделения фокусированных якорей в документах с форматированным текстом, отображаемых, например, в QTextBrowser. Формат должен быть QTextCharFormat, возвращённым в варианте QStyleHintReturnVariant. Для обводки используется свойство QTextFormat::OutlinePen, а для фона выделенной области — QTextFormat::BackgroundBrush.
QStyle::SH_Menu_FlashTriggeredItem 82 Элемент, запущенный вспышкой.
QStyle::SH_Menu_FadeOutOnHide 83 Анимация плавного исчезновения меню вместо немедленного скрытия.
QStyle::SH_TabWidget_DefaultTabPosition 87 Позиция панели вкладок по умолчанию в виджете вкладок.
QStyle::SH_ToolBar_Movable 88 Определяет, может ли панель инструментов перемещаться по умолчанию.
QStyle::SH_ItemView_PaintAlternatingRowColorsForEmptyArea 85 Определяет, рисует ли QTreeView чередующиеся цвета строк для области, не содержащей элементов.
QStyle::SH_Menu_Mask 81 Маска всплывающего меню.
QStyle::SH_ItemView_DrawDelegateFrame 92 Определяет, нужна ли рамка для виджета делегата.
QStyle::SH_TabBar_CloseButtonPosition 93 Определяет позицию кнопки закрытия на вкладке в панели вкладок.
QStyle::SH_DockWidget_ButtonsHaveFrame 94 Определяет, должны ли кнопки виджетов-доков иметь рамки. Значение по умолчанию — true.
QStyle::SH_ToolButtonStyle 95 Определяет стандартный системный стиль для кнопок инструментов, использующих Qt::ToolButtonFollowStyle.
QStyle::SH_RequestSoftwareInputPanel 96 Определяет, когда виджеты ввода должны запрашивать программную клавиатуру. Возвращает перечисление типа QStyle::RequestSoftwareInputPanel.
QStyle::SH_ScrollBar_Transient 97 Определяет, поддерживает ли стиль временные полосы прокрутки. Временные полосы прокрутки появляются при прокрутке содержимого и исчезают, когда они больше не нужны.
QStyle::SH_Menu_SupportsSections 98 Определяет, отображает ли стиль разделы в меню или рассматривает их как обычные разделители. Разделы — это разделители с подсказками текста и значка.
QStyle::SH_ToolTip_WakeUpDelay 99 Определяет задержку (в миллисекундах) перед отображением подсказки.
QStyle::SH_ToolTip_FallAsleepDelay 100 Определяет задержку (в миллисекундах) перед тем, как потребуется новое время пробуждения при отображении подсказки (обратите внимание: показана, а не скрыта). Когда новое пробуждение не требуется, запрашиваемая пользователем подсказка будет показана почти мгновенно.
QStyle::SH_Widget_Animate 101 Устарело. Используйте SH_Widget_Animation_Duration вместо этого.
QStyle::SH_Splitter_OpaqueResize 102 Определяет, масштабируются ли виджеты динамически (непрозрачно) во время интерактивного перемещения разделителя. Это значение перечисления было введено в Qt 5.2.
QStyle::SH_TabBar_ChangeCurrentDelay 105 Определяет задержку (в миллисекундах) перед изменением текущей вкладки во время перетаскивания по панели вкладок. Это значение перечисления было введено в Qt 5.4
QStyle::SH_ItemView_ScrollMode 112 Режим прокрутки по вертикали и горизонтали по умолчанию, как указано стилем. Можно переопределить с помощью QAbstractItemView::setVerticalScrollMode() и QAbstractItemView::setHorizontalScrollMode(). Это значение перечисления было введено в Qt 5.7.
QStyle::SH_TitleBar_ShowToolTipsOnButtons 113 Определяет, отображаются ли всплывающие подсказки на кнопках панели заголовка окна. Например, стиль Mac устанавливает это значение в false. Это значение перечисления было введено в Qt 5.10.
QStyle::SH_Widget_Animation_Duration 114 Определяет продолжительность анимации (в мс). Значение, равное нулю, означает отключение анимаций. Это значение перечисления было введено в Qt 5.10.
QStyle::SH_ComboBox_AllowWheelScrolling 115 Определяет, можно ли использовать колесо мыши для прокрутки внутри QComboBox. По умолчанию включено во всех стилях, кроме стиля Mac. Это значение перечисления было введено в Qt 5.10.
QStyle::SH_SpinBox_ButtonsInsideFrame 116 Определяет, находятся ли кнопки поля ввода внутри рамки поля редактирования. Это значение перечисления было введено в Qt 5.11.
QStyle::SH_SpinBox_StepModifier 117 Определяет, какая Qt::KeyboardModifier увеличивает скорость шага QAbstractSpinBox. Возможные значения: Qt::NoModifier, Qt::ControlModifier (по умолчанию) или Qt::ShiftModifier. Qt::NoModifier отключает эту функцию. Это значение перечисления было введено в Qt 5.12.

См. также styleHint().

enum QStyle::SubControlflags QStyle::SubControls

Это перечисление описывает доступные подэлементы управления. Подэлемент управления — это элемент управления внутри сложного элемента управления (ComplexControl).

Постоянная Значение Описание
QStyle::SC_None 0x00000000 Специальное значение, которое не совпадает ни с одним другим элементом управления.
QStyle::SC_ScrollBarAddLine 0x00000001 Кнопка увеличения полосы прокрутки (т.е. стрелка вниз/вправо); см. также QScrollBar.
QStyle::SC_ScrollBarSubLine 0x00000002 Кнопка уменьшения полосы прокрутки (т.е. стрелка вверх/влево).
QStyle::SC_ScrollBarAddPage 0x00000004 Кнопка перехода на следующую страницу полосы прокрутки (т.е. Page Down).
QStyle::SC_ScrollBarSubPage 0x00000008 Кнопка перехода на предыдущую страницу полосы прокрутки (т.е. Page Up).
QStyle::SC_ScrollBarFirst 0x00000010 Первая строка полосы прокрутки (т.е. Home).
QStyle::SC_ScrollBarLast 0x00000020 Последняя строка полосы прокрутки (т.е. End).
QStyle::SC_ScrollBarSlider 0x00000040 Движок полосы прокрутки.
QStyle::SC_ScrollBarGroove 0x00000080 Специальный элемент управления, содержащий область, в которой может перемещаться движок.
QStyle::SC_SpinBoxUp 0x00000001 Кнопка увеличения/увеличения значений спин-виджета; см. также QSpinBox.
QStyle::SC_SpinBoxDown 0x00000002 Кнопка уменьшения/уменьшения значений спин-виджета.
QStyle::SC_SpinBoxFrame 0x00000004 Рамка спин-виджета.
QStyle::SC_SpinBoxEditField 0x00000008 Поле ввода спин-виджета.
QStyle::SC_ComboBoxEditField 0x00000002 Поле ввода комбинации; см. также QComboBox.
QStyle::SC_ComboBoxArrow 0x00000004 Кнопка стрелки комбинации.
QStyle::SC_ComboBoxFrame 0x00000001 Рамка комбинации.
QStyle::SC_ComboBoxListBoxPopup 0x00000008 Прямоугольник отсчета для всплывающего списка комбинации. Используется для расчета положения всплывающего списка.
QStyle::SC_SliderGroove 0x00000001 Специальный элемент управления, содержащий область, в которой может перемещаться движок.
QStyle::SC_SliderHandle 0x00000002 Движок ползунка.
QStyle::SC_SliderTickmarks 0x00000004 Отметки ползунка.
QStyle::SC_ToolButton 0x00000001 Кнопка инструмента (см. также QToolButton).
QStyle::SC_ToolButtonMenu 0x00000002 Элемент управления для открытия всплывающего меню в кнопке инструмента.
QStyle::SC_TitleBarSysMenu 0x00000001 Кнопка системного меню (т.е. восстановить, закрыть и т.д.).
QStyle::SC_TitleBarMinButton 0x00000002 Кнопка сворачивания.
QStyle::SC_TitleBarMaxButton 0x00000004 Кнопка разворачивания.
QStyle::SC_TitleBarCloseButton 0x00000008 Кнопка закрытия.
QStyle::SC_TitleBarLabel 0x00000100 Метка заголовка окна.
QStyle::SC_TitleBarNormalButton 0x00000010 Обычная (восстановленная) кнопка.
QStyle::SC_TitleBarShadeButton 0x00000020 Кнопка затемнения.
QStyle::SC_TitleBarUnshadeButton 0x00000040 Кнопка отмены затемнения.
QStyle::SC_TitleBarContextHelpButton 0x00000080 Кнопка справки по контексту.
QStyle::SC_DialHandle 0x00000002 Маркер циферблата (т.е. то, что вы используете для управления циферблатом).
QStyle::SC_DialGroove 0x00000001 Паз циферблата.
QStyle::SC_DialTickmarks 0x00000004 Деления циферблата.
QStyle::SC_GroupBoxFrame 0x00000008 Рамка группы.
QStyle::SC_GroupBoxLabel 0x00000002 Заголовок группы.
QStyle::SC_GroupBoxCheckBox 0x00000001 Необязательная галочка в группе.
QStyle::SC_GroupBoxContents 0x00000004 Содержание группы.
QStyle::SC_MdiNormalButton 0x00000002 Обычная кнопка для подокна MDI в строке меню.
QStyle::SC_MdiMinButton 0x00000001 Кнопка сворачивания для подокна MDI в строке меню.
QStyle::SC_MdiCloseButton 0x00000004 Кнопка закрытия для подокна MDI в строке меню.
QStyle::SC_All 0xffffffff Специальное значение, которое соответствует всем элементам управления.

Тип SubControls — это typedef для QFlags<SubControl>. Он хранит логическое ИЛИ сочетание значений SubControl.

См. также ComplexControl.

enum QStyle::SubElement

Этот перечисление представляет собой подобласть виджета. Реализации стиля используют эти области для отрисовки различных частей виджета.

Постоянная Значение Описание
QStyle::SE_PushButtonContents 0 Область, содержащая метку (иконку с текстом или пиксельным изображением).
QStyle::SE_PushButtonFocusRect 1 Область для прямоугольника фокуса (обычно больше, чем область содержимого).
QStyle::SE_PushButtonLayoutItem 38 Область, учитываемая для расположения родительского макета.
QStyle::SE_CheckBoxIndicator 2 Область для индикатора состояния (например, галочки).
QStyle::SE_CheckBoxContents 3 Область для метки (текста или пиксельного изображения).
QStyle::SE_CheckBoxFocusRect 4 Область для индикатора фокуса.
QStyle::SE_CheckBoxClickRect 5 Нажимаемая область, по умолчанию SE_CheckBoxFocusRect.
QStyle::SE_CheckBoxLayoutItem 32 Область, учитываемая для расположения родительского макета.
QStyle::SE_DateTimeEditLayoutItem 34 Область, учитываемая для расположения родительского макета.
QStyle::SE_RadioButtonIndicator 6 Область для индикатора состояния.
QStyle::SE_RadioButtonContents 7 Область для метки.
QStyle::SE_RadioButtonFocusRect 8 Область для индикатора фокуса.
QStyle::SE_RadioButtonClickRect 9 Нажимаемая область, по умолчанию SE_RadioButtonFocusRect.
QStyle::SE_RadioButtonLayoutItem 39 Область, учитываемая для расположения родительского макета.
QStyle::SE_ComboBoxFocusRect 10 Область для индикатора фокуса.
QStyle::SE_SliderFocusRect 11 Область для индикатора фокуса.
QStyle::SE_SliderLayoutItem 40 Область, учитываемая для расположения родительского макета.
QStyle::SE_SpinBoxLayoutItem 41 Область, учитываемая для расположения родительского макета.
QStyle::SE_ProgressBarGroove 12 Область для желоба.
QStyle::SE_ProgressBarContents 13 Область для индикатора прогресса.
QStyle::SE_ProgressBarLabel 14 Область для текстовой метки.
QStyle::SE_ProgressBarLayoutItem 37 Область, учитываемая для расположения родительского макета.
QStyle::SE_FrameContents 27 Область для содержимого фрейма.
QStyle::SE_ShapedFrameContents 52 Область для содержимого фрейма, использующего форму в QStyleOptionFrame; см. QFrame
QStyle::SE_FrameLayoutItem 43 Область, учитываемая для расположения родительского макета.
QStyle::SE_HeaderArrow 17 Область для индикатора сортировки для заголовка.
QStyle::SE_HeaderLabel 16 Область для метки в заголовке.
QStyle::SE_LabelLayoutItem 36 Область, учитываемая для расположения родительского макета.
QStyle::SE_LineEditContents 26 Область для содержимого поля ввода.
QStyle::SE_TabWidgetLeftCorner 21 Область для виджета левого угла в виджете вкладок.
QStyle::SE_TabWidgetRightCorner 22 Область для виджета правого угла в виджете вкладок.
QStyle::SE_TabWidgetTabBar 18 Область для виджета панели вкладок в виджете вкладок.
QStyle::SE_TabWidgetTabContents 20 Область для содержимого виджета вкладок.
QStyle::SE_TabWidgetTabPane 19 Область для панели виджета вкладок.
QStyle::SE_TabWidgetLayoutItem 45 Область, учитываемая для расположения родительского макета.
QStyle::SE_ToolBoxTabContents 15 Область для значка и метки вкладки инструментальной панели.
QStyle::SE_ToolButtonLayoutItem 42 Область, учитываемая для расположения родительского макета.
QStyle::SE_ItemViewItemCheckIndicator SE_ViewItemCheckIndicator Область для отметки (галочки) элемента просмотра.
QStyle::SE_TabBarTearIndicator 24 Устарело. Используйте SE_TabBarTearIndicatorLeft вместо этого.
QStyle::SE_TabBarTearIndicatorLeft SE_TabBarTearIndicator Область для индикатора разрыва с левой стороны панели вкладок со стрелками прокрутки.
QStyle::SE_TabBarTearIndicatorRight 56 Область для индикатора разрыва с правой стороны панели вкладок со стрелками прокрутки.
QStyle::SE_TabBarScrollLeftButton 54 Область для кнопки прокрутки влево на панели вкладок с кнопками прокрутки.
QStyle::SE_TabBarScrollRightButton 55 Область для кнопки прокрутки вправо на панели вкладок с кнопками прокрутки.
QStyle::SE_TreeViewDisclosureItem 25 Область для фактического раскрывающегося элемента в ветви дерева.
QStyle::SE_DialogButtonBoxLayoutItem 35 Область, учитываемая для расположения родительского макета.
QStyle::SE_GroupBoxLayoutItem 44 Область, учитываемая для расположения родительского макета.
QStyle::SE_CustomBase 0xf0000000 Базовое значение для пользовательских подэлементов. Пользовательские значения должны быть больше этого значения.
QStyle::SE_DockWidgetFloatButton 29 Плавающая кнопка виджета панели инструментов.
QStyle::SE_DockWidgetTitleBarText 30 Границы текста заголовка виджетов панели инструментов.
QStyle::SE_DockWidgetCloseButton 28 Кнопка закрытия виджета панели инструментов.
QStyle::SE_DockWidgetIcon 31 Иконка виджета панели инструментов.
QStyle::SE_ComboBoxLayoutItem 33 Область, учитываемая для расположения родительского макета.
QStyle::SE_ItemViewItemDecoration 46 Область для декорации (иконки) элемента просмотра.
QStyle::SE_ItemViewItemText 47 Область для текста элемента просмотра.
QStyle::SE_ItemViewItemFocusRect 48 Область для прямоугольника фокуса элемента просмотра.
QStyle::SE_TabBarTabLeftButton 49 Область для виджета слева от вкладки на панели вкладок.
QStyle::SE_TabBarTabRightButton 50 Область для виджета справа от вкладки на панели вкладок.
QStyle::SE_TabBarTabText 51 Область для текста на вкладке в панели вкладок.
QStyle::SE_ToolBarHandle 53 Область для ручки панели инструментов.

См. также subElementRect().

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

QStyle::QStyle()

Создаёт объект стиля.

[virtual] QStyle::~QStyle()

Удаляет объект стиля.

[static] QRect QStyle::alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle)

Возвращает новый прямоугольник заданного размера size, выровненный по заданному прямоугольнику rectangle в соответствии с указанным выравниванием alignment и направлением direction.

int QStyle::combinedLayoutSpacing(QSizePolicy::ControlTypes controls1, QSizePolicy::ControlTypes controls2, Qt::Orientation orientation, QStyleOption *option = nullptr, QWidget *widget = nullptr) const

Возвращает интервал, который должен использоваться между controls1 и controls2 в макете. orientation определяет, расположены ли элементы управления бок о бок или друг под другом. Параметр option может использоваться для передачи дополнительной информации о родительском виджете. Параметр widget является необязательным и также может использоваться, если option равен 0.

controls1 и controls2 — это результат побитового объединения одного или нескольких типов элементов управления.

Эта функция вызывается системой макетов. Она используется только в том случае, если PM_LayoutHorizontalSpacing или PM_LayoutVerticalSpacing возвращают отрицательное значение.

Функция была введена в Qt 4.3.

См. также layoutSpacing().

[pure virtual] void QStyle::drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const

Рисует указанный элемент управления control с помощью предоставленного объекта рисования painter со стилем, заданным параметром option.

Аргумент widget является необязательным и может использоваться в качестве вспомогательного средства при рисовании элемента управления.

Параметр option — указатель на объект QStyleOptionComplex, который можно привести к соответствующему подклассу с помощью функции qstyleoption_cast(). Обратите внимание, что член rect указанного параметра option должен быть в логических координатах. Реализации этой функции должны использовать visualRect(), чтобы преобразовать логические координаты в экранные перед вызовом функции drawPrimitive() или drawControl().

В таблице ниже перечислены элементы управления сложной структуры и соответствующие им подклассы стиля. Элементы стиля содержат все параметры, необходимые для рисования элементов управления, включая QStyleOption::state, который содержит флаги стиля, используемые при рисовании. В таблице также описано, какие флаги устанавливаются при приведении указанного параметра option к соответствующему подклассу.

Элемент управления Подкласс QStyleOptionComplex Флаг стиля Примечание
CC_SpinBox QStyleOptionSpinBox State_Enabled Установлен, если спин-бокс включен.
State_HasFocus Установлен, если спин-бокс имеет фокус.
CC_ComboBox QStyleOptionComboBox State_Enabled Установлен, если раскрывающийся список включен.
State_HasFocus Установлен, если раскрывающийся список имеет фокус.
CC_ScrollBar QStyleOptionSlider State_Enabled Установлен, если полоса прокрутки включена.
State_HasFocus Установлен, если полоса прокрутки имеет фокус.
CC_Slider QStyleOptionSlider State_Enabled Установлен, если ползунок включен.
State_HasFocus Установлен, если ползунок имеет фокус.
CC_Dial QStyleOptionSlider State_Enabled Установлен, если регулятор включен.
State_HasFocus Установлен, если регулятор имеет фокус.
CC_ToolButton QStyleOptionToolButton State_Enabled Установлен, если кнопка инструмента включена.
State_HasFocus Установлен, если кнопка инструмента имеет фокус.
State_DownArrow Установлен, если кнопка инструмента нажата (т.е., нажата кнопка мыши или клавиша пробела).
State_On Установлен, если кнопка инструмента — переключатель и переключена.
State_AutoRaise Установлен, если для кнопки инструмента включена функция автоматического подъема.
State_Raised Установлен, если кнопка не нажата, не включена и не содержит курсор мыши, когда функция автоматического подъема включена.
CC_TitleBar QStyleOptionTitleBar State_Enabled Установлен, если строка заголовка включена.

См. также drawPrimitive() и drawControl().

[pure virtual] void QStyle::drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const

Рисует указанный элемент element с помощью предоставленного объекта рисования painter со стилем, заданным параметром option.

Аргумент widget является необязательным и может использоваться в качестве вспомогательного средства при рисовании элемента управления. Параметр option — указатель на объект QStyleOption, который можно привести к соответствующему подклассу с помощью функции qstyleoption_cast().

В таблице ниже перечислены элементы управления и соответствующие им подклассы стиля. Элементы стиля содержат все параметры, необходимые для рисования элементов управления, включая QStyleOption::state, который содержит флаги стиля, используемые при рисовании. В таблице также описано, какие флаги устанавливаются при приведении указанного параметра option к соответствующему подклассу.

Примечание: если элемент управления не указан в этом списке, это означает, что он использует обычный объект QStyleOption.

Элемент управления Подкласс QStyleOption Флаг стиля Примечание
CE_MenuItem, CE_MenuBarItem QStyleOptionMenuItem State_Selected Элемент меню в данный момент выбран.
State_Enabled Элемент включён.
State_DownArrow Указывает, что необходимо нарисовать стрелку вниз для прокрутки.
State_UpArrow Указывает, что необходимо нарисовать стрелку вверх для прокрутки.
State_HasFocus Устанавливается, если у строки меню фокус ввода.
CE_PushButton, CE_PushButtonBevel, CE_PushButtonLabel QStyleOptionButton State_Enabled Устанавливается, если кнопка включена.
State_HasFocus Устанавливается, если кнопка имеет фокус ввода.
State_Raised Устанавливается, если кнопка не нажата, не включена и не плоская.
State_On Устанавливается, если кнопка — переключатель и включена.
State_Sunken Устанавливается, если кнопка нажата (например, нажата кнопка мыши или клавиша пробела).
CE_RadioButton, CE_RadioButtonLabel, CE_CheckBox, CE_CheckBoxLabel QStyleOptionButton State_Enabled Устанавливается, если кнопка включена.
State_HasFocus Устанавливается, если кнопка имеет фокус ввода.
State_On Устанавливается, если кнопка выбрана.
State_Off Устанавливается, если кнопка не выбрана.
State_NoChange Устанавливается, если кнопка находится в состоянии «Без изменений».
State_Sunken Устанавливается, если кнопка нажата (например, нажата кнопка мыши или клавиша пробела).
CE_ProgressBarContents, CE_ProgressBarLabel, CE_ProgressBarGroove QStyleOptionProgressBar State_Enabled Устанавливается, если полоса прогресса включена.
State_HasFocus Устанавливается, если полоса прогресса имеет фокус ввода.
CE_Header, CE_HeaderSection, CE_HeaderLabel QStyleOptionHeader
CE_TabBarTab, CE_TabBarTabShape, CE_TabBarTabLabel QStyleOptionTab State_Enabled Устанавливается, если вкладка включена.
State_Selected Вкладка является текущей выбранной вкладкой.
State_HasFocus Устанавливается, если у вкладки фокус ввода.
CE_ToolButtonLabel QStyleOptionToolButton State_Enabled Устанавливается, если кнопка инструмента включена.
State_HasFocus Устанавливается, если кнопка инструмента имеет фокус ввода.
State_Sunken Устанавливается, если кнопка инструмента нажата (например, нажата кнопка мыши или клавиша пробела).
State_On Устанавливается, если кнопка инструмента — переключатель и включена.
State_AutoRaise Устанавливается, если для кнопки инструмента включен автоподъем.
State_MouseOver Устанавливается, если указатель мыши находится над кнопкой инструмента.
State_Raised Устанавливается, если кнопка не нажата и не включена.
CE_ToolBoxTab QStyleOptionToolBox State_Selected Вкладка является текущей выбранной вкладкой.
CE_HeaderSection QStyleOptionHeader State_Sunken Указывает, что секция нажата.
State_UpArrow Указывает, что индикатор сортировки должен быть направлен вверх.
State_DownArrow Указывает, что индикатор сортировки должен быть направлен вниз.

См. также drawPrimitive() и drawComplexControl().

[virtual] void QStyle::drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const

Отображает заданный pixmap в указанном rectangle в соответствии с заданным alignment с помощью предоставленного painter.

См. также drawItemText().

[virtual] void QStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const

Отображает заданный text в указанном rectangle с помощью предоставленного painter и palette.

Текст отображается с помощью пера painter и выравнивается и обрезается в соответствии с заданным alignment. Если указан явный textRole, текст отображается с использованием цвета palette для данного роли. Параметр enabled указывает, включен ли элемент; при переопределении этой функции параметр enabled должен влиять на способ отображения элемента.

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

[pure virtual] void QStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const

Отображает указанный примитивный element с помощью предоставленного painter, используя параметры стиля, указанные в option.

Аргумент widget необязателен и может содержать виджет, который может помочь при отрисовке примитивного элемента.

В таблице ниже перечислены примитивные элементы и соответствующие подклассы стиля опций. Стиль опций содержит все параметры, необходимые для отрисовки элементов, включая QStyleOption::state, который содержит флаги стиля, используемые при отрисовке. Таблица также описывает, какие флаги устанавливаются при приведении заданного option к соответствующему подклассу.

Обратите внимание, что если примитивный элемент не указан здесь, это значит, что он использует обычный объект QStyleOption.

Примитивный элемент QStyleOption Подкласс Флаг стиля Примечание
PE_FrameFocusRect QStyleOptionFocusRect State_FocusAtBorder Определяет, находится ли фокус на границе или внутри виджета.
PE_IndicatorCheckBox QStyleOptionButton State_NoChange Указывает на "трёхсостояниевый" флажок.
State_On Указывает, что индикатор выбран.
PE_IndicatorRadioButton QStyleOptionButton State_On Указывает, что радиокнопка выбрана.
State_NoChange Указывает на "трёхсостояниевый" элемент управления.
State_Enabled Указывает, что элемент управления активен.
PE_IndicatorBranch QStyleOption State_Children Указывает, что должна быть нарисована область для разворачивания дерева, чтобы показать дочерние элементы.
State_Item Указывает, что должна быть нарисована горизонтальная ветвь (для отображения дочернего элемента).
State_Open Указывает, что ветвь дерева развернута.
State_Sibling Указывает, что должна быть нарисована вертикальная линия (для отображения элемента-близнеца).
PE_IndicatorHeaderArrow QStyleOptionHeader State_UpArrow Указывает, что стрелка должна быть нарисована вверх; в противном случае она должна быть вниз.
PE_FrameGroupBox, PE_Frame, PE_FrameLineEdit, PE_FrameMenu, PE_FrameDockWidget, PE_FrameWindow QStyleOptionFrame State_Sunken Указывает, что рамка должна быть утоплена.
PE_IndicatorToolBarHandle QStyleOption State_Horizontal Указывает, что ручка окна горизонтальная, а не вертикальная.
PE_IndicatorSpinPlus, PE_IndicatorSpinMinus, PE_IndicatorSpinUp, PE_IndicatorSpinDown, QStyleOptionSpinBox State_Sunken Указывает, что кнопка нажата.
PE_PanelButtonCommand QStyleOptionButton State_Enabled Устанавливается, если кнопка активна.
State_HasFocus Устанавливается, если кнопка имеет фокус ввода.
State_Raised Устанавливается, если кнопка не нажата, не выбрана и не плоская.
State_On Устанавливается, если кнопка — переключатель и включена.
State_Sunken Устанавливается, если кнопка нажата (т.е., нажата кнопка мыши или клавиша пробела на кнопке).

См. также drawComplexControl() и drawControl().

[pure virtual] QPixmap QStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const

Возвращает копию заданной pixmap, стилизованной в соответствии с заданным iconMode и учитывающей палитру, указанную в option.

Параметр option может передавать дополнительную информацию, но он должен содержать палитру.

Обратите внимание, что не все pixmap будут соответствовать, в этом случае возвращаемая pixmap будет простой копией.

См. также QIcon.

[pure virtual] QStyle::SubControl QStyle::hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget = nullptr) const

Возвращает подэлемент по заданной position в заданном сложном control (с параметрами стиля, указанными в option).

Обратите внимание, что position выражена в координатах экрана.

Аргумент option — указатель на объект QStyleOptionComplex (или один из его подклассов). Объект можно привести к соответствующему типу с помощью функции qstyleoption_cast(). Подробности см. в drawComplexControl(). Аргумент widget необязателен и может содержать дополнительную информацию для функции.

См. также drawComplexControl() и subControlRect().

[virtual] QRect QStyle::itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const

Возвращает область внутри заданного rectangle, в которой необходимо нарисовать указанную pixmap в соответствии с заданным alignment.

[virtual] QRect QStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const

Возвращает область внутри заданного rectangle, в которой необходимо нарисовать предоставленный text в соответствии с заданными metrics и alignment. Параметр enabled указывает, активен ли связанный элемент.

Если заданный rectangle больше, чем область, необходимая для рендеринга text, возвращаемый прямоугольник будет смещён внутри rectangle в соответствии с заданным alignment. Например, если alignment равен Qt::AlignCenter, возвращаемый прямоугольник будет центрирован внутри rectangle. Если заданный rectangle меньше, чем необходимая область, возвращаемый прямоугольник будет самым маленьким прямоугольником, достаточным для рендеринга text.

См. также Qt::Alignment.

[pure virtual] int QStyle::layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = ..., const QWidget *widget = ...) const

Возвращает отступ, который следует использовать между control1 и control2 в макете. orientation указывает, выстроены ли элементы управления бок о бок или друг под другом. Параметр option может использоваться для передачи дополнительной информации о родительском виджете. Параметр widget необязателен и может быть использован, если option равен нулю.

Эта функция вызывается системой макета. Она используется только в том случае, если PM_LayoutHorizontalSpacing или PM_LayoutVerticalSpacing возвращает отрицательное значение.

Эта функция была введена в Qt 4.3.

См. также combinedLayoutSpacing().

[pure virtual] int QStyle::pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const

Возвращает значение заданного пиксельного metric.

Заданные option и widget могут использоваться для вычисления метрики. В общем случае аргумент widget не используется. Аргумент option может быть приведён к соответствующему типу с помощью функции qstyleoption_cast(). Обратите внимание, что option может быть нулевым даже для PixelMetrics, которые могут его использовать. В таблице ниже приведены соответствующие приведения option:

Метрика пикселей Подкласс QStyleOption
PM_SliderControlThickness QStyleOptionSlider
PM_SliderLength QStyleOptionSlider
PM_SliderTickmarkOffset QStyleOptionSlider
PM_SliderSpaceAvailable QStyleOptionSlider
PM_ScrollBarExtent QStyleOptionSlider
PM_TabBarTabOverlap QStyleOptionTab
PM_TabBarTabHSpace QStyleOptionTab
PM_TabBarTabVSpace QStyleOptionTab
PM_TabBarBaseHeight QStyleOptionTab
PM_TabBarBaseOverlap QStyleOptionTab

Некоторые метрики пикселей вызываются виджетами, а некоторые — только внутренне стилем. Если метрика не вызывается виджетом, автор стиля решает, использовать её или нет. В некоторых стилях это может быть нецелесообразно.

[virtual] void QStyle::polish(QWidget *widget)

Инициализирует внешний вид заданного виджета widget.

Эта функция вызывается для каждого виджета в какой-то момент после его полного создания, но непосредственно перед его первым отображением.

Обратите внимание, что реализация по умолчанию ничего не делает. Разумные действия в этой функции могут включать вызов функции QWidget::setBackgroundMode() для виджета. Не используйте функцию для установки, например, геометрии. Переопределение этой функции предоставляет «задний ход», с помощью которого можно изменить внешний вид виджета, но с помощью механизма стиля Qt это редко необходимо; вместо этого переопределяйте drawItemPixmap(), drawItemText(), drawPrimitive() и т. д.

Функция QWidget::inherits() может предоставить достаточно информации для настройки, специфичной для класса. Но поскольку ожидается, что новые подклассы QStyle будут работать с разумной эффективностью со всеми текущими и будущими виджетами, рекомендуется ограниченное использование жёстко заданной настройки.

См. также unpolish().

[virtual] void QStyle::polish(QApplication *application)

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

Поздняя инициализация заданного объекта application.

[virtual] void QStyle::polish(QPalette &palette)

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

Изменяет palette в соответствии с требованиями стиля к цветовым палитрам (если таковые имеются).

См. также QPalette и QApplication::setPalette().

const QStyle *QStyle::proxy() const

Эта функция возвращает текущий прокси для этого стиля. По умолчанию большинство стилей вернут себя. Однако при использовании прокси-стиля он позволит стилю вызывать обратный вызов в свой прокси.

Эта функция была добавлена в Qt 4.6.

[pure virtual] QSize QStyle::sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const

Возвращает размер элемента, описанного указанным option и type, на основе предоставленного contentsSize.

Аргумент option — указатель на QStyleOption или один из его подклассов. option можно преобразовать к соответствующему типу с помощью функции qstyleoption_cast(). widget — необязательный аргумент, который может содержать дополнительную информацию, используемую для расчёта размера.

См. таблицу ниже для соответствующих преобразований option:

Тип содержимого Подкласс QStyleOption
CT_CheckBox QStyleOptionButton
CT_ComboBox QStyleOptionComboBox
CT_GroupBox QStyleOptionGroupBox
CT_HeaderSection QStyleOptionHeader
CT_ItemViewItem QStyleOptionViewItem
CT_LineEdit QStyleOptionFrame
CT_MdiControls QStyleOptionComplex
CT_Menu QStyleOption
CT_MenuItem QStyleOptionMenuItem
CT_MenuBar QStyleOptionMenuItem
CT_MenuBarItem QStyleOptionMenuItem
CT_ProgressBar QStyleOptionProgressBar
CT_PushButton QStyleOptionButton
CT_RadioButton QStyleOptionButton
CT_ScrollBar QStyleOptionSlider
CT_SizeGrip QStyleOption
CT_Slider QStyleOptionSlider
CT_SpinBox QStyleOptionSpinBox
CT_Splitter QStyleOption
CT_TabBarTab QStyleOptionTab
CT_TabWidget QStyleOptionTabWidgetFrame
CT_ToolButton QStyleOptionToolButton

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

[static] int QStyle::sliderPositionFromValue(int min, int max, int logicalValue, int span, bool upsideDown = false)

Преобразует заданное logicalValue в позицию пикселей. Параметр min соответствует 0, max — span, а другие значения распределяются равномерно между ними.

Эта функция может обрабатывать весь диапазон целых чисел без переполнения, при условии, что span меньше 4096.

По умолчанию функция предполагает, что максимальное значение находится справа для горизонтальных элементов и внизу для вертикальных. Установите параметр upsideDown в значение true, чтобы изменить это поведение.

См. также sliderValueFromPosition().

[static] int QStyle::sliderValueFromPosition(int min, int max, int position, int span, bool upsideDown = false)

Преобразует заданную позицию пикселей position в логическое значение. 0 соответствует параметру min, span — max, а другие значения распределяются равномерно между ними.

Эта функция может обрабатывать весь диапазон целых чисел без переполнения.

По умолчанию функция предполагает, что максимальное значение находится справа для горизонтальных элементов и внизу для вертикальных. Установите параметр upsideDown в значение true, чтобы изменить это поведение.

См. также sliderPositionFromValue().

[pure virtual] QIcon QStyle::standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = ..., const QWidget *widget = ...) const

Возвращает значок для данного standardIcon.

standardIcon — это стандартное пиктографическое изображение, которое может соответствовать определённому существующему стилю или руководству по оформлению графического интерфейса. Аргумент option может использоваться для передачи дополнительной информации, необходимой при определении подходящей иконки. Аргумент widget является необязательным и также может помочь в определении иконки.

Данная функция была добавлена в Qt 4.1.

[virtual] QPalette QStyle::standardPalette() const

Возвращает стандартную палитру стиля.

Обратите внимание, что на системах, поддерживающих системные цвета, стандартная палитра стиля не используется. В частности, стили Windows Vista и Mac не используют стандартную палитру, а используют собственные механизмы темы. При использовании этих стилей вы не должны устанавливать палитру с помощью QApplication::setPalette().

См. также QApplication::setPalette().

[pure virtual] int QStyle::styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const

Возвращает целое число, представляющее указанный стиль hint для заданного widget, описанного предоставленным стилем option.

returnData используется, когда запрашивающему виджету требуется более подробные данные, чем целое число, возвращаемое styleHint(). Подробнее см. описание класса QStyleHintReturn.

[pure virtual] QRect QStyle::subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget = nullptr) const

Возвращает прямоугольник, содержащий указанный subControl заданного комплексного control (со стилем, указанным в option). Прямоугольник определяется в координатах экрана.

Аргумент option — указатель на QStyleOptionComplex или один из его подклассов, который можно привести к соответствующему типу с помощью функции qstyleoption_cast(). Подробнее см. drawComplexControl(). Аргумент widget является необязательным и может содержать дополнительную информацию для функции.

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

[pure virtual] QRect QStyle::subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const

Возвращает подобласть для данного element, как описано в предоставленном стиле option. Возвращаемый прямоугольник определяется в координатах экрана.

Аргумент widget является необязательным и может использоваться для определения области. Объект QStyleOption может быть приведён к соответствующему типу с помощью функции qstyleoption_cast(). См. таблицу ниже для соответствующих приведений option:

Подэлемент Подкласс QStyleOption
SE_PushButtonContents QStyleOptionButton
SE_PushButtonFocusRect QStyleOptionButton
SE_CheckBoxIndicator QStyleOptionButton
SE_CheckBoxContents QStyleOptionButton
SE_CheckBoxFocusRect QStyleOptionButton
SE_RadioButtonIndicator QStyleOptionButton
SE_RadioButtonContents QStyleOptionButton
SE_RadioButtonFocusRect QStyleOptionButton
SE_ComboBoxFocusRect QStyleOptionComboBox
SE_ProgressBarGroove QStyleOptionProgressBar
SE_ProgressBarContents QStyleOptionProgressBar
SE_ProgressBarLabel QStyleOptionProgressBar

[virtual] void QStyle::unpolish(QWidget *widget)

Деинициализирует внешний вид заданного widget.

Эта функция является аналогом polish(). Она вызывается для каждого отполированного виджета при динамическом изменении стиля; предыдущий стиль должен деинициализировать свои настройки перед тем, как новый стиль сможет их повторно инициализировать.

Обратите внимание, что unpolish() будет вызвана только если виджет уничтожается. Это может привести к проблемам в некоторых случаях, например, если вы удаляете виджет из пользовательского интерфейса, кешируете его, а затем повторно вставляете его после изменения стиля; некоторые классы Qt кэшируют свои виджеты.

См. также polish().

[virtual] void QStyle::unpolish(QApplication *application)

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

Деинициализирует заданное application.

[static] Qt::Alignment QStyle::visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment)

Преобразует выравнивание Qt::AlignLeft или Qt::AlignRight без Qt::AlignAbsolute в Qt::AlignLeft или Qt::AlignRight с Qt::AlignAbsolute в зависимости от направления direction. Другие флаги выравнивания остаются неизменными.

Если горизонтальное выравнивание не было указано, функция возвращает значение по умолчанию для данного направления direction.

QWidget::layoutDirection

[static] QPoint QStyle::visualPos(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QPoint &logicalPosition)

Возвращает заданную logicalPosition, преобразованную в координаты экрана на основе указанного direction. boundingRectangle используется при преобразовании.

См. также QWidget::layoutDirection.

[static] QRect QStyle::visualRect(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QRect &logicalRectangle)

Возвращает заданный logicalRectangle, преобразованный в координаты экрана на основе указанного direction. boundingRectangle используется при преобразовании.

Эта функция предназначена для поддержки систем с отображением справа налево и обычно используется в реализациях функции subControlRect().

См. также QWidget::layoutDirection.

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

Spec-Zone.ru

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