Spec-Zone.ru › Qt

Класс QStyle

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

Заголовок: #include <QStyle>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследует: QObject
Наследуется:

QCommonStyle

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

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

Перечисление ComplexControl { CC_SpinBox, CC_ComboBox, CC_ScrollBar, CC_Slider, CC_ToolButton, …, CC_CustomBase }
Перечисление ContentsType { CT_CheckBox, CT_ComboBox, CT_HeaderSection, CT_LineEdit, CT_Menu, …, CT_MdiControls }
Перечисление ControlElement { CE_PushButton, CE_PushButtonBevel, CE_PushButtonLabel, CE_DockWidgetTitle, CE_Splitter, …, CE_ShapedFrame }
Перечисление PixelMetric { PM_ButtonMargin, PM_DockWidgetTitleBarButtonMargin, PM_ButtonDefaultIndicator, PM_MenuButtonIndicator, PM_ButtonShiftHorizontal, …, PM_CustomBase }
Перечисление PrimitiveElement { PE_PanelButtonCommand, PE_FrameDefaultButton, PE_PanelButtonBevel, PE_PanelButtonTool, PE_PanelLineEdit, …, PE_PanelMenu }
Перечисление RequestSoftwareInputPanel { RSIP_OnMouseClickAndAlreadyFocused, RSIP_OnMouseClick }
Перечисление StandardPixmap { SP_TitleBarMinButton, SP_TitleBarMenuButton, SP_TitleBarMaxButton, SP_TitleBarCloseButton, SP_TitleBarNormalButton, …, SP_CustomBase }
Флаги State
Перечисление StateFlag { State_None, State_Active, State_AutoRaise, State_Children, State_DownArrow, …, State_Small }
Перечисление StyleHint { SH_EtchDisabledText, SH_DitherDisabledText, SH_ScrollBar_ContextMenu, SH_ScrollBar_MiddleClickAbsolutePosition, SH_ScrollBar_LeftClickAbsolutePosition, …, SH_TabBar_AllowWheelScrolling }
Перечисление SubControl { SC_None, SC_ScrollBarAddLine, SC_ScrollBarSubLine, SC_ScrollBarAddPage, SC_ScrollBarSubPage, …, SC_All }
Флаги SubControls
Перечисление SubElement { SE_PushButtonContents, SE_PushButtonFocusRect, SE_PushButtonLayoutItem, SE_PushButtonBevel, SE_CheckBoxIndicator, …, SE_ToolBarHandle }

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

QStyle()
virtual ~QStyle()
int combinedLayoutSpacing(QSizePolicy::ControlTypes controls1, QSizePolicy::ControlTypes controls2, Qt::Orientation orientation, QStyleOption *option = nullptr, QWidget *widget = nullptr) const
virtual void drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const = 0
virtual void drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const = 0
virtual void drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const
virtual void drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const
virtual void drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const = 0
virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const = 0
virtual QStyle::SubControl hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget = nullptr) const = 0
virtual QRect itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const
virtual QRect itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const
virtual int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const = 0
QString name() const
virtual int pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const = 0
virtual void polish(QWidget *widget)
virtual void polish(QApplication *application)
virtual void polish(QPalette &palette)
const QStyle * proxy() const
virtual QSize sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const = 0
virtual QIcon standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const = 0
virtual QPalette standardPalette() const
virtual int styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const = 0
virtual QRect subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget = nullptr) const = 0
virtual QRect subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const = 0
virtual void unpolish(QWidget *widget)
virtual void unpolish(QApplication *application)

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

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

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

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.

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

class CustomStyle : public QProxyStyle
{
    Q_OBJECT

public:
    CustomStyle(const QWidget *widget);
    ~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.

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

Предупреждение: В настоящее время темы 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 для получения дополнительной информации о создании плагина темы.

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

./myapplication -style custom

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

Рабочие столы с правосторонним расположением

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

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

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

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

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

Рисование элементов в представлениях выполняется делегатом. По умолчанию Qt использует делегат QStyledItemDelegate, который также используется для расчёта границ элементов и их подэлементов для различных видов ролей данных элементов ItemDataRole, поддерживаемых QStyledItemDelegate. См. описание класса QStyledItemDelegate, чтобы узнать, какие типы данных и роли поддерживаются. Более подробно о ролях данных элементов см. в разделе Моделирование/Представление.

Когда 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 и Стиль.

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

перечисление 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().

перечисление 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().

перечисление 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 73 Количество пробелов между метками кнопок панели заголовка виджета и рамкой.
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 Ширина рамки поля ввода со списком (spin box), по умолчанию равна PM_DefaultFrameWidth.
QStyle::PM_ComboBoxFrameWidth 7 Ширина рамки выпадающего списка (combo box), по умолчанию равна PM_DefaultFrameWidth.
QStyle::PM_MdiSubWindowFrameWidth 44 Ширина рамки окна MDI.
QStyle::PM_MdiSubWindowMinimizedWidth 45 Ширина свёрнутого окна MDI.
QStyle::PM_LayoutLeftMargin 75 По умолчанию левая отступ для QLayout.
QStyle::PM_LayoutTopMargin 76 По умолчанию верхний отступ для QLayout.
QStyle::PM_LayoutRightMargin 77 По умолчанию правый отступ для QLayout.
QStyle::PM_LayoutBottomMargin 78 По умолчанию нижний отступ для QLayout.
QStyle::PM_LayoutHorizontalSpacing 79 По умолчанию горизонтальный отступ для QLayout.
QStyle::PM_LayoutVerticalSpacing 80 По умолчанию вертикальный отступ для 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 70 Отступ заголовка окна-дока.
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 59 Размер значка панели инструментов по умолчанию.
QStyle::PM_SmallIconSize 62 Размер малого значка по умолчанию.
QStyle::PM_LargeIconSize 63 Размер большого значка по умолчанию.
QStyle::PM_FocusFrameHMargin 65 Горизонтальный отступ, на который рамка фокуса будет выдвинута за пределы виджета.
QStyle::PM_FocusFrameVMargin 64 Вертикальный отступ, на который рамка фокуса будет выдвинута за пределы виджета.
QStyle::PM_IconViewIconSize 61 Размер значков по умолчанию в представлении значков.
QStyle::PM_ListViewIconSize 60 Размер значков по умолчанию в представлении списка.
QStyle::PM_ToolTipLabelFrameWidth 66 Ширина рамки метки всплывающей подсказки.
QStyle::PM_CheckBoxLabelSpacing 67 Отступ между индикатором флажка и его меткой.
QStyle::PM_RadioButtonLabelSpacing 74 Отступ между индикатором радиокнопки и его меткой.
QStyle::PM_TabBarIconSize 68 Размер значка по умолчанию для панели вкладок.
QStyle::PM_SizeGripSize 69 Размер маркерного элемента изменения размера.
QStyle::PM_MessageBoxIconSize 71 Размер стандартных значков в окне сообщения.
QStyle::PM_ButtonIconSize 72 Размер значков кнопок по умолчанию.
QStyle::PM_TextCursorWidth 82 Ширина курсора в поле ввода строки или поле редактирования текста.
QStyle::PM_TabBar_ScrollButtonOverlap 81 Расстояние между левой и правой кнопками на панели вкладок.
QStyle::PM_TabCloseIndicatorWidth 83 По умолчанию ширина кнопки закрытия на вкладке в панели вкладок.
QStyle::PM_TabCloseIndicatorHeight 84 По умолчанию высота кнопки закрытия на вкладке в панели вкладок.
QStyle::PM_ScrollView_ScrollBarSpacing 85 Расстояние между рамкой и полосой прокрутки, если установлен SH_ScrollView_FrameOnlyAroundContents.
QStyle::PM_ScrollView_ScrollBarOverlap 86 Перекрытие между полосами прокрутки и содержимым прокрутки.
QStyle::PM_SubMenuOverlap 87 Горизонтальное перекрытие между подменю и его родителем.
QStyle::PM_TreeViewIndentation 88 Отступ элементов в представлении дерева. Это значение перечисления было введено в Qt 5.4.
QStyle::PM_HeaderDefaultSectionSizeHorizontal 89 По умолчанию размер секций в горизонтальном заголовке. Это значение перечисления было введено в Qt 5.5.
QStyle::PM_HeaderDefaultSectionSizeVertical 90 По умолчанию размер секций в вертикальном заголовке. Это значение перечисления было введено в Qt 5.5.
QStyle::PM_TitleBarButtonIconSize 91 Размер значков кнопок на панели заголовка. Это значение перечисления было введено в Qt 5.8.
QStyle::PM_TitleBarButtonSize 92 Размер кнопок на панели заголовка. Это значение перечисления было введено в Qt 5.8.
QStyle::PM_LineEditIconSize 93 По умолчанию размер значков в поле ввода строки. Это значение перечисления было введено в Qt 6.2.
QStyle::PM_CustomBase 0xf0000000 Базовое значение для настраиваемых пиксельных метрик. Настраиваемые значения должны быть больше этого значения.

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

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

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

Константа Значение Описание
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 25 Индикатор включения/выключения для элемента списка.
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 7 Рамка для элемента строки состояния; см. также 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().

enum QStyle::RequestSoftwareInputPanel

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

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

См. также QInputMethod.

enum QStyle::StandardPixmap

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

Постоянная Значение Описание
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 Иконка компакт-диска.
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 Иконка, указывающая, что текущую страницу следует перезагрузить.
END_OF_DOCUMENT_MARKER
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_DialogYesToAllButton 71 Иконка для стандартной кнопки «Да для всех» в QDialogButtonBox. Эта константа была добавлена в Qt 5.14.
QStyle::SP_DialogNoToAllButton 72 Иконка для стандартной кнопки «Нет для всех» в QDialogButtonBox. Эта константа была добавлена в Qt 5.14.
QStyle::SP_DialogSaveAllButton 73 Иконка для стандартной кнопки «Сохранить все» в QDialogButtonBox. Эта константа была добавлена в Qt 5.14.
QStyle::SP_DialogAbortButton 74 Иконка для стандартной кнопки «Прервать» в QDialogButtonBox. Эта константа была добавлена в Qt 5.14.
QStyle::SP_DialogRetryButton 75 Иконка для стандартной кнопки «Повторить» в QDialogButtonBox. Эта константа была добавлена в Qt 5.14.
QStyle::SP_DialogIgnoreButton 76 Иконка для стандартной кнопки «Пропустить» в QDialogButtonBox. Эта константа была добавлена в Qt 5.14.
QStyle::SP_RestoreDefaultsButton 77 Иконка для стандартной кнопки «Восстановить значения по умолчанию» в QDialogButtonBox. Эта константа была добавлена в Qt 5.14.
QStyle::SP_CustomBase 0xf0000000 Базовое значение для пользовательских стандартных пиктограмм; пользовательские значения должны быть больше этого значения.

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

enum QStyle::StateFlagflags QStyle::State

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

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

Константа Значение Описание
QStyle::State_None 0x00000000 Указывает, что у виджета нет состояния.
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 Используется для указания того, был ли фокус изменён с помощью клавиатуры, например, клавишей табуляции, обратной табуляции или сочетанием клавиш.
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 Используется для указания мини-стиля виджета или кнопки macOS.
QStyle::State_Small 0x04000000 Используется для указания малого стиля виджета или кнопки macOS.

Тип State является псевдонимом для QFlags<StateFlag>. Он хранит комбинацию значений StateFlag, соединённых операцией OR.

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

enum QStyle::StyleHint

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

Константа Значение Описание
QStyle::SH_EtchDisabledText 0 Текст, отключенный для отображения, "выгравирован", как в Windows.
QStyle::SH_DitherDisabledText 1 Текст, отключенный для отображения, рассеян (дитер), как в Motif.
QStyle::SH_ScrollBar_ContextMenu 62 Наличие контекстного меню в полосе прокрутки.
QStyle::SH_ScrollBar_MiddleClickAbsolutePosition 2 Булево значение. Если true, средний клик по полосе прокрутки перемещает ползунок в эту позицию. Если false, средний клик игнорируется.
QStyle::SH_ScrollBar_LeftClickAbsolutePosition 39 Булево значение. Если true, левый клик по полосе прокрутки перемещает ползунок в эту позицию. Если false, левый клик ведет себя соответствующим образом для каждого элемента управления.
QStyle::SH_ScrollBar_ScrollWhenPointerLeavesControl 3 Булево значение. Если true, при нажатии на элемент полосы прокрутки SubControl, удерживании нажатой кнопки мыши и перемещении указателя за пределы SubControl, полоса прокрутки продолжает прокрутку. Если false, прокрутка останавливается, когда указатель выходит за пределы SubControl.
QStyle::SH_ScrollBar_RollBetweenButtons 63 Булево значение. Если true, при нажатии на кнопку полосы прокрутки (SC_ScrollBarAddLine или SC_ScrollBarSubLine) и перетаскивании к противоположной кнопке (прокрутка), новая кнопка нажимается, а старая отпускается. Если false, исходная кнопка отпускается, и ничего не происходит (как обычная кнопка).
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 Ввод текста приводит к поиску соответствующих элементов в меню, в противном случае учитывается только mnemonics.
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 105 С Qt 5.5. Если курсор должен двигаться к подменю (как в macOS), или если курсор может двигаться в любом направлении, до тех пор, пока не достигнет подменю до истечения времени неопределенного ожидания.
QStyle::SH_Menu_SubMenuUniDirectionFailCount 106 С Qt 5.5. Когда определен SH_Menu_SubMenuUniDirection, этот перечисление определяет количество неудачных перемещений мыши перед тем, как подменю с неопределенным ожиданием будет отклонено. Это может быть использовано для управления "жесткостью" алгоритма однонаправленного движения.
QStyle::SH_Menu_SubMenuSloppySelectOtherActions 107 С Qt 5.5. Должны ли быть выбраны другие пункты действия при движении мыши к неопределенному подменю.
QStyle::SH_Menu_SubMenuSloppyCloseTimeout 108 С Qt 5.5. Время ожидания для закрытия подменю с неопределенным ожиданием.
QStyle::SH_Menu_SubMenuResetWhenReenteringParent 109 С Qt 5.5. При входе в родительское меню из дочернего подменю, следует ли сбросить состояние неопределенного ожидания, эффективно закрывая дочернее и активизируя текущее подменю.
QStyle::SH_Menu_SubMenuDontStartSloppyOnLeave 110 С 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 73 Разрешить обертку элементов при выборе во всплывающих окнах, то есть при выборе следующего элемента выбирается первый.
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_Slider_StopMouseOverSlider 27 Остановить автоматическое повторение, когда ползунок достигает положения мыши.
QStyle::SH_BlinkCursorWhenTextSelected 28 Требуется ли мигать курсору при выделении текста.
QStyle::SH_RichText_FullWidthSelection 29 Выделение в формате richtext должно расширяться до полной ширины документа.
END_OF_DOCUMENT_MARKER
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 103 Определяет задержку перед тем, как видимый символ маскируется символом пароля, в миллисекундах. Это значение перечисления было добавлено в Qt 5.4.
QStyle::SH_Table_GridLineColor 34 Значение RGBA сетки для таблицы.
QStyle::SH_UnderlineShortcut 41 Подчеркиваются ли сочетания клавиш.
QStyle::SH_SpinBox_AnimateButton 42 Анимировать щелчок при нажатии клавиш вверх или вниз в спинбоксе.
QStyle::SH_SpinBox_KeyPressAutoRepeatRate 43 Интервал автоповтора для нажатий клавиш спинбокса.
QStyle::SH_SpinBox_ClickAutoRepeatRate 44 Интервал автоповтора для щелчков мышью спинбокса.
QStyle::SH_SpinBox_ClickAutoRepeatThreshold 83 Пороговое значение автоповтора для щелчков мышью спинбокса.
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 72 Логическое значение, указывающее, должны ли кнопки в окне сообщения центрироваться или нет (см. 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 78 Управляет внешним видом и ощущением QWizard. Возвращает перечисление QWizard::WizardStyle.
QStyle::SH_FormLayoutWrapPolicy 85 Предоставляет значение по умолчанию для того, как строки оборачиваются в QFormLayout. Возвращает перечисление QFormLayout::RowWrapPolicy.
QStyle::SH_FormLayoutFieldGrowthPolicy 88 Предоставляет значение по умолчанию для того, как поля могут увеличиваться в QFormLayout. Возвращает перечисление QFormLayout::FieldGrowthPolicy.
QStyle::SH_FormLayoutFormAlignment 89 Предоставляет значение по умолчанию для выравнивания содержимого QFormLayout в доступном пространстве. Возвращает перечисление Qt::Alignment.
QStyle::SH_FormLayoutLabelAlignment 90 Предоставляет значение по умолчанию для выравнивания меток в QFormLayout в доступном пространстве. Возвращает перечисление Qt::Alignment.
QStyle::SH_ItemView_ArrowKeysNavigateIntoChildren 79 Управляет тем, будет ли древовидное представление выбирать первый дочерний элемент при его раскрытии и нажатии клавиши со стрелкой вправо.
QStyle::SH_ComboBox_PopupFrameStyle 69 Стиль рамки, используемый при отрисовке всплывающего меню раскрывающегося списка.
QStyle::SH_DialogButtonBox_ButtonsHaveIcons 71 Указывает, должны ли стандартные кнопки в QDialogButtonBox иметь значки или нет.
QStyle::SH_ItemView_MovementWithoutUpdatingSelection 74 Представление элементов может указывать текущий элемент без изменения выделения.
QStyle::SH_ToolTip_Mask 75 Маска всплывающей подсказки.
QStyle::SH_FocusFrame_AboveWidget 76 Рамка фокуса расположена поверх виджета, на который она «фокусируется».
QStyle::SH_TextControl_FocusIndicatorTextCharFormat 77 Определяет формат текста, используемый для выделения выделенных якорей в документах форматированного текста, отображаемых, например, в QTextBrowser. Формат должен быть QTextCharFormat, возвращаемым в варианте возвращаемого значения QStyleHintReturnVariant. Свойство QTextFormat::OutlinePen используется для контура, а QTextFormat::BackgroundBrush — для фона выделенной области.
QStyle::SH_Menu_FlashTriggeredItem 81 Запускаемый элементом вспышка.
QStyle::SH_Menu_FadeOutOnHide 82 Скрыть меню плавно, вместо мгновенного скрытия.
QStyle::SH_TabWidget_DefaultTabPosition 86 По умолчанию положение панели вкладок в виджете вкладок.
QStyle::SH_ToolBar_Movable 87 Определяет, может ли панель инструментов перемещаться по умолчанию.
QStyle::SH_ItemView_PaintAlternatingRowColorsForEmptyArea 84 Определяет, рисует ли QTreeView чередующиеся цвета строк для области, не содержащей элементов.
QStyle::SH_Menu_Mask 80 Маска всплывающего меню.
QStyle::SH_ItemView_DrawDelegateFrame 91 Определяет, должен ли быть фрейм для виджета делегата.
QStyle::SH_TabBar_CloseButtonPosition 92 Определяет положение кнопки закрытия на вкладке в панели вкладок.
QStyle::SH_DockWidget_ButtonsHaveFrame 93 Определяет, должны ли кнопки виджета причала иметь фреймы. По умолчанию значение равно true.
QStyle::SH_ToolButtonStyle 94 Определяет стиль системы по умолчанию для кнопок инструментов, использующих Qt::ToolButtonFollowStyle.
QStyle::SH_RequestSoftwareInputPanel 95 Определяет, когда виджет ввода должен запросить панель ввода программного обеспечения. Возвращает перечисление типа QStyle::RequestSoftwareInputPanel.
QStyle::SH_ScrollBar_Transient 96 Определяет, поддерживает ли стиль временные полосы прокрутки. Временные полосы прокрутки появляются при прокрутке содержимого и исчезают, когда они больше не нужны.
QStyle::SH_Menu_SupportsSections 97 Определяет, отображает ли стиль разделы в меню или рассматривает их как простые разделители. Разделы — это разделители с текстовым и значковым подсказками.
QStyle::SH_ToolTip_WakeUpDelay 98 Определяет задержку перед отображением всплывающей подсказки в миллисекундах.
QStyle::SH_ToolTip_FallAsleepDelay 99 Определяет задержку (в миллисекундах) перед тем, как потребуется новое время пробуждения при отображении всплывающей подсказки (замечание: отображении, а не скрытии). Если новое время пробуждения не требуется, запрашиваемая пользователем всплывающая подсказка будет отображена практически мгновенно.
QStyle::SH_Widget_Animate 100 Устарело. Используйте SH_Widget_Animation_Duration вместо этого.
QStyle::SH_Splitter_OpaqueResize 101 Определяет, изменяются ли размеры виджетов динамически (непрозрачно) при взаимодействии с перемещением разделителя. Это значение перечисления было введено в Qt 5.2.
QStyle::SH_TabBar_ChangeCurrentDelay 104 Определяет задержку перед изменением текущей вкладки при перетаскивании над панелью вкладок в миллисекундах. Это значение перечисления было введено в Qt 5.4.
QStyle::SH_ItemView_ScrollMode 111 Режим прокрутки по вертикали и горизонтали по умолчанию, как указано стилем. Может быть переопределён с помощью QAbstractItemView::setVerticalScrollMode() и QAbstractItemView::setHorizontalScrollMode(). Это значение перечисления было введено в Qt 5.7.
QStyle::SH_TitleBar_ShowToolTipsOnButtons 112 Определяет, отображаются ли всплывающие подсказки на кнопках строки заголовка окна. Например, стиль Mac устанавливает это значение в false. Это значение перечисления было введено в Qt 5.10.
QStyle::SH_Widget_Animation_Duration 113 Определяет, сколько времени должна длиться анимация (в мс). Значение, равное нулю, означает, что анимации будут отключены. Это значение перечисления было введено в Qt 5.10.
QStyle::SH_ComboBox_AllowWheelScrolling 114 Определяет, можно ли использовать колесо мыши для прокрутки внутри QComboBox. По умолчанию включено во всех стилях, кроме стиля Mac. Это значение перечисления было введено в Qt 5.10.
QStyle::SH_SpinBox_ButtonsInsideFrame 115 Определяет, находятся ли кнопки поля ввода внутри рамки строки редактирования. Это значение перечисления было введено в Qt 5.11.
QStyle::SH_SpinBox_StepModifier 116 Определяет, какой Qt::KeyboardModifier увеличивает скорость шага QAbstractSpinBox. Возможные значения: Qt::NoModifier, Qt::ControlModifier (по умолчанию) или Qt::ShiftModifier. Qt::NoModifier отключает эту функцию. Это значение перечисления было введено в Qt 5.12.
QStyle::SH_TabBar_AllowWheelScrolling 117 Определяет, можно ли использовать колесо мыши для переключения вкладок в QTabBar. Это значение перечисления было введено в Qt 6.1.

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

enum QStyle::SubControlflags QStyle::SubControls

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

Константа Значение Описание
QStyle::SC_None 0x00000000 Особое значение, которое не соответствует ни одному другому подэлементу управления.
QStyle::SC_ScrollBarAddLine 0x00000001 Добавить строку в полосу прокрутки (т.е. стрелка вниз/вправо); см. также QScrollBar.
QStyle::SC_ScrollBarSubLine 0x00000002 Уменьшить строку в полосе прокрутки (т.е. стрелка вверх/влево).
QStyle::SC_ScrollBarAddPage 0x00000004 Добавить страницу в полосе прокрутки (т.е. прокрутить вниз страницу).
QStyle::SC_ScrollBarSubPage 0x00000008 Уменьшить страницу в полосе прокрутки (т.е. прокрутить вверх страницу).
QStyle::SC_ScrollBarFirst 0x00000010 Первая строка в полосе прокрутки (т.е. начало).
QStyle::SC_ScrollBarLast 0x00000020 Последняя строка в полосе прокрутки (т.е. конец).
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 0x00000004 Необязательная галочка группового поля.
QStyle::SC_GroupBoxContents 0x00000004 Содержимое группового поля.
QStyle::SC_MdiNormalButton 0x00000002 Обычная кнопка для подокна MDI в строке меню.
QStyle::SC_MdiMinButton 0x00000001 Кнопка сворачивания для подокна MDI в строке меню.
QStyle::SC_MdiCloseButton 0x00000004 Кнопка закрытия для подокна MDI в строке меню.
QStyle::SC_All 0xffffffff Специальное значение, которое соответствует всем подэлементам управления.

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

См. также ComplexControl.

Перечисление QStyle::SubElement

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

Постоянная Значение Описание
QStyle::SE_PushButtonContents 0 Область, содержащая метку (иконку с текстом или пиксельмапом).
QStyle::SE_PushButtonFocusRect 1 Область для прямоугольника фокуса (обычно больше, чем область содержимого).
QStyle::SE_PushButtonLayoutItem 37 Область, учитываемая родительским макетом.
QStyle::SE_PushButtonBevel 56 [с 5.15] Область, используемая для фаски кнопки.
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 38 Область, учитываемая родительским макетом.
QStyle::SE_ComboBoxFocusRect 10 Область для индикатора фокуса.
QStyle::SE_SliderFocusRect 11 Область для индикатора фокуса.
QStyle::SE_SliderLayoutItem 39 Область, учитываемая родительским макетом.
QStyle::SE_SpinBoxLayoutItem 40 Область, учитываемая родительским макетом.
QStyle::SE_ProgressBarGroove 12 Область для желоба.
QStyle::SE_ProgressBarContents 13 Область для индикатора прогресса.
QStyle::SE_ProgressBarLabel 14 Область для текстовой метки.
QStyle::SE_ProgressBarLayoutItem 36 Область, учитываемая родительским макетом.
QStyle::SE_FrameContents 27 Область для содержимого фрейма.
QStyle::SE_ShapedFrameContents 51 Область для содержимого фрейма, использующая форму в QStyleOptionFrame; см. QFrame
QStyle::SE_FrameLayoutItem 42 Область, учитываемая родительским макетом.
QStyle::SE_HeaderArrow 17 Область для индикатора сортировки для заголовка.
QStyle::SE_HeaderLabel 16 Область для метки в заголовке.
QStyle::SE_LabelLayoutItem 35 Область, учитываемая родительским макетом.
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 44 Область, учитываемая родительским макетом.
QStyle::SE_ToolBoxTabContents 15 Область для значка и метки вкладки инструментальной панели.
QStyle::SE_ToolButtonLayoutItem 41 Область, учитываемая родительским макетом.
QStyle::SE_ItemViewItemCheckIndicator 23 Область для галочки элемента просмотра.
QStyle::SE_TabBarTearIndicator 24 Устарело. Используйте SE_TabBarTearIndicatorLeft вместо этого.
QStyle::SE_TabBarTearIndicatorLeft SE_TabBarTearIndicator Область для индикатора разрыва слева на панели вкладок со стрелками прокрутки.
QStyle::SE_TabBarTearIndicatorRight 55 Область для индикатора разрыва справа на панели вкладок со стрелками прокрутки.
QStyle::SE_TabBarScrollLeftButton 53 Область для кнопки прокрутки влево на панели вкладок с кнопками прокрутки.
QStyle::SE_TabBarScrollRightButton 54 Область для кнопки прокрутки вправо на панели вкладок с кнопками прокрутки.
QStyle::SE_TreeViewDisclosureItem 25 Область для фактического элемента раскрытия в ветви дерева.
QStyle::SE_GroupBoxLayoutItem 43 Область, учитываемая родительским макетом.
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 45 Область для декорации (иконки) элемента просмотра.
QStyle::SE_ItemViewItemText 46 Область для текста элемента просмотра.
QStyle::SE_ItemViewItemFocusRect 47 Область для прямоугольника фокуса элемента просмотра.
QStyle::SE_TabBarTabLeftButton 48 Область для виджета слева от вкладки на панели вкладок.
QStyle::SE_TabBarTabRightButton 49 Область для виджета справа от вкладки на панели вкладок.
QStyle::SE_TabBarTabText 50 Область для текста на вкладке на панели вкладок.
QStyle::SE_ToolBarHandle 52 Область для ручки панели инструментов.

См. также 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 nullptr.

controls1 и controls2 — это битовое ИЛИ-соединение нуля или более типов элементов управления.

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

См. также 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, который содержит флаги стиля, используемые при отрисовке. В таблице также описываются флаги, которые устанавливаются при приведении заданной опции к соответствующему подклассу.

Обратите внимание, что если примитивный элемент здесь не указан, это потому, что он использует обычный объект 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 может передавать дополнительную информацию, но он должен содержать палитру.

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

См. также 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 = nullptr, const QWidget *widget = nullptr) const

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

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

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

[since 6.1] QString QStyle::name() const

Возвращает имя стиля.

Это значение можно использовать для создания стиля с помощью QStyleFactory::create().

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

См. также QStyleFactory::create().

[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

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

[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 = nullptr, const QWidget *widget = nullptr) const

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

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

[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(). Ниже приведена таблица соответствий:

Элемент подэлемента Подкласс QStyleOption
SE_PushButtonContents QStyleOptionButton
SE_PushButtonFocusRect QStyleOptionButton
SE_PushButtonBevel 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)

Преобразует выравнивание 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-6.2/qstyle.html

Spec-Zone.ru

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