Класс QStyle
Класс QStyle — это абстрактный базовый класс, который инкапсулирует внешний вид и ощущения графического интерфейса пользователя. Подробнее...
| Заголовок: | #include <QStyle> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Наследует: | QObject |
| Наследуется от: |
Открытые типы
| перечисление | ComplexControl { CC_SpinBox, CC_ComboBox, CC_ScrollBar, CC_Slider, CC_ToolButton, …, CC_CustomBase } |
| перечисление | ContentsType { CT_CheckBox, CT_ComboBox, CT_LineEdit, CT_Menu, CT_MenuBar, …, 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 в девяти различных стилях.
Темы:
Установка стиля
Стиль всего приложения можно установить, используя функцию 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();
~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, чтобы узнать, какие типы данных и роли поддерживаются. Дополнительную информацию о ролях данных элементов можно найти в Model/View Programming.
При отрисовке элементов 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().
enum QStyle::ContentsType
Этот перечисление описывает доступные типы содержимого. Они используются для расчета размеров содержимого различных виджетов.
| Постоянная | Значение | Описание |
|---|---|---|
QStyle::CT_CheckBox |
1 |
Флажок, как QCheckBox. |
QStyle::CT_ComboBox |
4 |
Комбо-бокс, как QComboBox. |
QStyle::CT_LineEdit |
14 |
Поле ввода, как QLineEdit. |
QStyle::CT_Menu |
10 |
Меню, как QMenu. |
QStyle::CT_MenuBar |
9 |
Панель меню, как QMenuBar. |
QStyle::CT_MenuBarItem |
8 |
Элемент панели меню, например, кнопки в QMenuBar. |
QStyle::CT_MenuItem |
7 |
Элемент меню, как QMenuItem. |
QStyle::CT_ProgressBar |
6 |
Полоса прогресса, как QProgressBar. |
QStyle::CT_PushButton |
0 |
Кнопка, как QPushButton. |
QStyle::CT_RadioButton |
2 |
Радиокнопка, как QRadioButton. |
QStyle::CT_SizeGrip |
16 |
Маркер размера, как QSizeGrip. |
QStyle::CT_Slider |
12 |
Ползунок, как QSlider. |
QStyle::CT_ScrollBar |
13 |
Полоса прокрутки, как QScrollBar. |
QStyle::CT_SpinBox |
15 |
Поле со списком, как QSpinBox. |
QStyle::CT_Splitter |
5 |
Разделитель, как QSplitter. |
QStyle::CT_TabBarTab |
11 |
Вкладка на панели вкладок, как QTabBar. |
QStyle::CT_TabWidget |
17 |
Виджет вкладок, как QTabWidget. |
QStyle::CT_ToolButton |
3 |
Инструментальная кнопка, как QToolButton. |
QStyle::CT_GroupBox |
20 |
Группа, как QGroupBox. |
QStyle::CT_ItemViewItem |
22 |
Элемент внутри виджета представления элементов. |
QStyle::CT_CustomBase |
0xf0000000 |
Базовое значение для пользовательских типов содержимого. Пользовательские значения должны быть больше этого значения. |
QStyle::CT_MdiControls |
21 |
Кнопки минимизации, нормального состояния и закрытия в панели меню для максимизированного подокна MDI. |
См. также sizeFromContents().
enum QStyle::ControlElement
Это перечисление представляет элемент управления. Элемент управления — это часть виджета, которая выполняет какое-либо действие или отображает информацию пользователю.
| Константа | Значение | Описание |
|---|---|---|
QStyle::CE_PushButton |
0 |
Кнопка QPushButton, рисует CE_PushButtonBevel, CE_PushButtonLabel и PE_FrameFocusRect. |
QStyle::CE_PushButtonBevel |
1 |
Выступ и стандартный индикатор кнопки QPushButton. |
QStyle::CE_PushButtonLabel |
2 |
Метка (иконка с текстом или пиктограммой) кнопки QPushButton. |
QStyle::CE_DockWidgetTitle |
30 |
Заголовок плавающего окна. |
QStyle::CE_Splitter |
28 |
Ручка разделителя; см. также QSplitter. |
QStyle::CE_CheckBox |
3 |
Флажок QCheckBox, рисует PE_IndicatorCheckBox, CE_CheckBoxLabel и PE_FrameFocusRect. |
QStyle::CE_CheckBoxLabel |
4 |
Метка (текст или пиктограмма) флажка QCheckBox. |
QStyle::CE_RadioButton |
5 |
Радиокнопка QRadioButton, рисует PE_IndicatorRadioButton, CE_RadioButtonLabel и PE_FrameFocusRect. |
QStyle::CE_RadioButtonLabel |
6 |
Метка (текст или пиктограмма) радиокнопки QRadioButton. |
QStyle::CE_TabBarTab |
7 |
Вкладка и метка в QTabBar. |
QStyle::CE_TabBarTabShape |
8 |
Форма вкладки в панели вкладок. |
QStyle::CE_TabBarTabLabel |
9 |
Метка на вкладке. |
QStyle::CE_ProgressBar |
10 |
QProgressBar, рисует CE_ProgressBarGroove, CE_ProgressBarContents и CE_ProgressBarLabel. |
QStyle::CE_ProgressBarGroove |
11 |
Паз, в котором отображается индикатор прогресса в QProgressBar. |
QStyle::CE_ProgressBarContents |
12 |
Индикатор прогресса в QProgressBar. |
QStyle::CE_ProgressBarLabel |
13 |
Текстовая метка QProgressBar. |
QStyle::CE_ToolButtonLabel |
22 |
Метка кнопки инструмента. |
QStyle::CE_MenuBarItem |
20 |
Элемент меню в QMenuBar. |
QStyle::CE_MenuBarEmptyArea |
21 |
Пустая область QMenuBar. |
QStyle::CE_MenuItem |
14 |
Элемент меню в QMenu. |
QStyle::CE_MenuScroller |
15 |
Области прокрутки в QMenu, если стиль поддерживает прокрутку. |
QStyle::CE_MenuTearoff |
18 |
Элемент меню, представляющий отрывной раздел QMenu. |
QStyle::CE_MenuEmptyArea |
19 |
Область в меню без элементов меню. |
QStyle::CE_MenuHMargin |
17 |
Горизонтальное дополнительное пространство слева/справа от меню. |
QStyle::CE_MenuVMargin |
16 |
Вертикальное дополнительное пространство сверху/снизу меню. |
QStyle::CE_ToolBoxTab |
26 |
Вкладка и метка панели инструментов в QToolBox. |
QStyle::CE_SizeGrip |
27 |
Ручка изменения размера окна; см. также QSizeGrip. |
QStyle::CE_Header |
23 |
Заголовок. |
QStyle::CE_HeaderSection |
24 |
Раздел заголовка. |
QStyle::CE_HeaderLabel |
25 |
Метка заголовка. |
QStyle::CE_ScrollBarAddLine |
31 |
Индикатор увеличения полосы прокрутки (т.е. прокрутка вниз); см. также QScrollBar. |
QStyle::CE_ScrollBarSubLine |
32 |
Индикатор уменьшения полосы прокрутки (т.е. прокрутка вверх). |
QStyle::CE_ScrollBarAddPage |
33 |
Индикатор увеличения страницы полосы прокрутки (т.е. прокрутка вниз страницы). |
QStyle::CE_ScrollBarSubPage |
34 |
Индикатор уменьшения страницы полосы прокрутки (т.е. прокрутка вверх страницы). |
QStyle::CE_ScrollBarSlider |
35 |
Ползунок полосы прокрутки. |
QStyle::CE_ScrollBarFirst |
36 |
Индикатор первой строки полосы прокрутки (т.е. начало). |
QStyle::CE_ScrollBarLast |
37 |
Индикатор последней строки полосы прокрутки (т.е. конец). |
QStyle::CE_RubberBand |
29 |
Резинка, используемая, например, в представлении иконок. |
QStyle::CE_FocusFrame |
38 |
Рамка фокуса, управляемая стилем. |
QStyle::CE_ItemViewItem |
45 |
Элемент внутри представления элементов. |
QStyle::CE_CustomBase |
0xf0000000 |
Базовое значение для пользовательских элементов управления; пользовательские значения должны быть больше этого значения. |
QStyle::CE_ComboBoxLabel |
39 |
Метка нередактируемого QComboBox. |
QStyle::CE_ToolBar |
40 |
Панель инструментов, подобная QToolBar. |
QStyle::CE_ToolBoxTabShape |
41 |
Форма вкладки панели инструментов. |
QStyle::CE_ToolBoxTabLabel |
42 |
Метка вкладки панели инструментов. |
QStyle::CE_HeaderEmptyArea |
43 |
Область заголовка представления, где нет разделов заголовка. |
QStyle::CE_ShapedFrame |
46 |
Рамка с формой, указанной в QStyleOptionFrame; см. QFrame. |
См. также drawControl().
перечисление QStyle::PixelMetric
Это перечисление описывает различные доступные пиксельные метрики. Пиксельная метрика — это зависящая от стиля величина размера, представленная значением одного пикселя.
| Константа | Значение | Описание |
|---|---|---|
QStyle::PM_ButtonMargin |
0 |
Количество пробелов между метками кнопок и рамкой. |
QStyle::PM_DockWidgetTitleBarButtonMargin |
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 |
Ширина рамки поля ввода, по умолчанию PM_DefaultFrameWidth. |
QStyle::PM_ComboBoxFrameWidth |
7 |
Ширина рамки раскрывающегося списка, по умолчанию 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_CustomBase |
0xf0000000 |
Базовое значение для пользовательских пиксельных метрик. Пользовательские значения должны быть больше этого значения. |
См. также pixelMetric().
enum 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
Это перечисление описывает доступные стандартные пиктограммы. Стандартная пиктограмма — это пиктограмма, которая может следовать некоторым существующим стилям или рекомендациям графического интерфейса пользователя.
| Константа | Значение | Описание |
|---|---|---|
QStyle::SP_TitleBarMinButton |
1 |
Кнопка минимизации на панелях заголовка (например, в QMdiSubWindow). |
QStyle::SP_TitleBarMenuButton |
0 |
Кнопка меню на панели заголовка. |
QStyle::SP_TitleBarMaxButton |
2 |
Кнопка максимизации на панелях заголовка. |
QStyle::SP_TitleBarCloseButton |
3 |
Кнопка закрытия на панелях заголовка. |
QStyle::SP_TitleBarNormalButton |
4 |
Кнопка восстановления на панелях заголовка. |
QStyle::SP_TitleBarShadeButton |
5 |
Кнопка сворачивания на панелях заголовка. |
QStyle::SP_TitleBarUnshadeButton |
6 |
Кнопка разворачивания на панелях заголовка. |
QStyle::SP_TitleBarContextHelpButton |
7 |
Кнопка справки контекста на панелях заголовка. |
QStyle::SP_MessageBoxInformation |
9 |
Иконка «информация». |
QStyle::SP_MessageBoxWarning |
10 |
Иконка «предупреждение». |
QStyle::SP_MessageBoxCritical |
11 |
Иконка «критическая ошибка». |
QStyle::SP_MessageBoxQuestion |
12 |
Иконка «вопрос». |
QStyle::SP_DesktopIcon |
13 |
Иконка «рабочий стол». |
QStyle::SP_TrashIcon |
14 |
Иконка «корзина». |
QStyle::SP_ComputerIcon |
15 |
Иконка «Мой компьютер». |
QStyle::SP_DriveFDIcon |
16 |
Иконка дискеты. |
QStyle::SP_DriveHDIcon |
17 |
Иконка жесткого диска. |
QStyle::SP_DriveCDIcon |
18 |
Иконка CD-диска. |
QStyle::SP_DriveDVDIcon |
19 |
Иконка DVD-диска. |
QStyle::SP_DriveNetIcon |
20 |
Иконка сети. |
QStyle::SP_DirHomeIcon |
56 |
Иконка домашней папки. |
QStyle::SP_DirOpenIcon |
21 |
Иконка открытой папки. |
QStyle::SP_DirClosedIcon |
22 |
Иконка закрытой папки. |
QStyle::SP_DirIcon |
38 |
Иконка папки. |
QStyle::SP_DirLinkIcon |
23 |
Иконка ссылки на папку. |
QStyle::SP_DirLinkOpenIcon |
24 |
Иконка ссылки на открытую папку. |
QStyle::SP_FileIcon |
25 |
Иконка файла. |
QStyle::SP_FileLinkIcon |
26 |
Иконка ссылки на файл. |
QStyle::SP_FileDialogStart |
29 |
Иконка «Пуск» в диалоговом окне файла. |
QStyle::SP_FileDialogEnd |
30 |
Иконка «Конец» в диалоговом окне файла. |
QStyle::SP_FileDialogToParent |
31 |
Иконка «Родительская папка» в диалоговом окне файла. |
QStyle::SP_FileDialogNewFolder |
32 |
Иконка «Создать новую папку» в диалоговом окне файла. |
QStyle::SP_FileDialogDetailedView |
33 |
Иконка подробного вида в диалоговом окне файла. |
QStyle::SP_FileDialogInfoView |
34 |
Иконка информации о файле в диалоговом окне файла. |
QStyle::SP_FileDialogContentsView |
35 |
Иконка вида содержимого в диалоговом окне файла. |
QStyle::SP_FileDialogListView |
36 |
Иконка списка в диалоговом окне файла. |
QStyle::SP_FileDialogBack |
37 |
Стрелка «назад» в диалоговом окне файла. |
QStyle::SP_DockWidgetCloseButton |
8 |
Кнопка закрытия для окон док-станции (см. также QDockWidget). |
QStyle::SP_ToolBarHorizontalExtensionButton |
27 |
Кнопка расширения для горизонтальных панелей инструментов. |
QStyle::SP_ToolBarVerticalExtensionButton |
28 |
Кнопка расширения для вертикальных панелей инструментов. |
QStyle::SP_DialogOkButton |
39 |
Иконка стандартной кнопки «ОК» в QDialogButtonBox. |
QStyle::SP_DialogCancelButton |
40 |
Иконка стандартной кнопки «Отмена» в QDialogButtonBox. |
QStyle::SP_DialogHelpButton |
41 |
Иконка стандартной кнопки «Справка» в QDialogButtonBox. |
QStyle::SP_DialogOpenButton |
42 |
Иконка стандартной кнопки «Открыть» в QDialogButtonBox. |
QStyle::SP_DialogSaveButton |
43 |
Иконка стандартной кнопки «Сохранить» в QDialogButtonBox. |
QStyle::SP_DialogCloseButton |
44 |
Иконка стандартной кнопки «Закрыть» в QDialogButtonBox. |
QStyle::SP_DialogApplyButton |
45 |
Иконка стандартной кнопки «Применить» в QDialogButtonBox. |
QStyle::SP_DialogResetButton |
46 |
Иконка стандартной кнопки «Сбросить» в QDialogButtonBox. |
QStyle::SP_DialogDiscardButton |
47 |
Иконка стандартной кнопки «Отменить» в QDialogButtonBox. |
QStyle::SP_DialogYesButton |
48 |
Иконка стандартной кнопки «Да» в QDialogButtonBox. |
QStyle::SP_DialogNoButton |
49 |
Иконка стандартной кнопки «Нет» в QDialogButtonBox. |
QStyle::SP_ArrowUp |
50 |
Иконка стрелка вверх. |
QStyle::SP_ArrowDown |
51 |
Иконка стрелка вниз. |
QStyle::SP_ArrowLeft |
52 |
Иконка стрелка влево. |
QStyle::SP_ArrowRight |
53 |
Иконка стрелка вправо. |
QStyle::SP_ArrowBack |
54 |
Эквивалентно SP_ArrowLeft, когда текущее направление макета — Qt::LeftToRight, в противном случае — SP_ArrowRight. |
QStyle::SP_ArrowForward |
55 |
Эквивалентно SP_ArrowRight, когда текущее направление макета — Qt::LeftToRight, в противном случае — SP_ArrowLeft. |
QStyle::SP_CommandLink |
57 |
Иконка, используемая для обозначения глифа ссылки команды в стиле Vista. |
QStyle::SP_VistaShield |
58 |
Иконка, используемая для обозначения запросов UAC в Windows Vista. Возвращает пустой рисунок или иконку на всех других платформах. |
QStyle::SP_BrowserReload |
59 |
Иконка, указывающая, что текущая страница должна быть перезагружена. |
QStyle::SP_BrowserStop |
60 |
Иконка, указывающая на то, что загрузка страницы должна остановиться. |
QStyle::SP_MediaPlay |
61 |
Иконка, указывающая на то, что воспроизведение медиа должно начаться. |
QStyle::SP_MediaStop |
62 |
Иконка, указывающая на то, что воспроизведение медиа должно остановиться. |
QStyle::SP_MediaPause |
63 |
Иконка, указывающая на то, что воспроизведение медиа должно приостановиться. |
QStyle::SP_MediaSkipForward |
64 |
Иконка, указывающая на то, что воспроизведение медиа должно перейти вперёд. |
QStyle::SP_MediaSkipBackward |
65 |
Иконка, указывающая на то, что воспроизведение медиа должно перейти назад. |
QStyle::SP_MediaSeekForward |
66 |
Иконка, указывающая на то, что воспроизведение медиа должно перемотать вперёд. |
QStyle::SP_MediaSeekBackward |
67 |
Иконка, указывающая на то, что воспроизведение медиа должно перемотать назад. |
QStyle::SP_MediaVolume |
68 |
Иконка, указывающая на регулятор громкости. |
QStyle::SP_MediaVolumeMuted |
69 |
Иконка, указывающая на регулятор громкости в выключенном состоянии. |
QStyle::SP_LineEditClearButton |
70 |
Иконка стандартной кнопки "Очистить" в элементе QLineEdit. Эта константа была добавлена в Qt 5.2. |
QStyle::SP_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 |
Используется для указания виджета или кнопки с мини-стилем Mac. |
QStyle::State_Small |
0x04000000 |
Используется для указания виджета или кнопки с малым стилем Mac. |
Тип State — это псевдоним для QFlags<StateFlag>. Он хранит логическое ИЛИ сочетание значений StateFlag.
См. также drawPrimitive().
enum QStyle::StyleHint
Это перечисление описывает доступные подсказки стиля. Подсказка стиля — это общая подсказка по внешнему виду и/или ощущениям.
| Константа | Значение | Описание |
|---|---|---|
QStyle::SH_EtchDisabledText |
0 |
Текст, отключённый, "гравируется", как на Windows. |
QStyle::SH_DitherDisabledText |
1 |
Текст, отключённый, используется метод дithering, как на 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, этот перечисление определяет число неудачных перемещений мыши, прежде чем небрежное подменю будет отброшено. Это можно использовать для управления "строгостью" алгоритма uni direction. |
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 |
Определяет, рисует ли scrollview свою рамку только вокруг содержимого (как Motif), или вокруг содержимого, полос прокрутки и угловых виджетов (как Windows). |
QStyle::SH_MenuBar_AltKeyNavigation |
18 |
Пункты строка меню доступны для навигации нажатием Alt, а затем с помощью стрелок для выбора нужного пункта. |
QStyle::SH_ComboBox_ListMouseTracking |
19 |
Отслеживание мыши в раскрывающихся списках combobox. |
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 |
Разрешает всплывающие окна в качестве раскрывающегося меню combobox. |
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 распространяться на всю ширину документа. |
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 |
Кнопка полосы прокрутки для перехода к первой строке (т. е. "Home"). |
QStyle::SC_ScrollBarLast |
0x00000020 |
Кнопка полосы прокрутки для перехода к последней строке (т. е. "End"). |
QStyle::SC_ScrollBarSlider |
0x00000040 |
Движок полосы прокрутки. |
QStyle::SC_ScrollBarGroove |
0x00000080 |
Специальный подэлемент, содержащий область, в которой может перемещаться движок. |
QStyle::SC_SpinBoxUp |
0x00000001 |
Кнопка увеличения/увеличения счетчика; см. также QSpinBox. |
QStyle::SC_SpinBoxDown |
0x00000002 |
Кнопка уменьшения/уменьшения счетчика. |
QStyle::SC_SpinBoxFrame |
0x00000004 |
Рамка счетчика. |
QStyle::SC_SpinBoxEditField |
0x00000008 |
Поле редактирования счетчика. |
QStyle::SC_ComboBoxEditField |
0x00000002 |
Поле редактирования раскрывающегося списка; см. также QComboBox. |
QStyle::SC_ComboBoxArrow |
0x00000004 |
Кнопка стрелки раскрывающегося списка. |
QStyle::SC_ComboBoxFrame |
0x00000001 |
Рамка раскрывающегося списка. |
QStyle::SC_ComboBoxListBoxPopup |
0x00000008 |
Прямоугольник отсчета для всплывающего списка. Используется для расчета положения всплывающего списка. |
QStyle::SC_SliderGroove |
0x00000001 |
Специальный подэлемент, содержащий область, в которой может перемещаться движок. |
QStyle::SC_SliderHandle |
0x00000002 |
Движок ползунка. |
QStyle::SC_SliderTickmarks |
0x00000004 |
Риски ползунка. |
QStyle::SC_ToolButton |
0x00000001 |
Кнопка инструмента (см. также QToolButton). |
QStyle::SC_ToolButtonMenu |
0x00000002 |
Подэлемент для открытия всплывающего меню в кнопке инструмента. |
QStyle::SC_TitleBarSysMenu |
0x00000001 |
Кнопка системного меню (т. е. восстановить, закрыть и т. д.). |
QStyle::SC_TitleBarMinButton |
0x00000002 |
Кнопка минимизации. |
QStyle::SC_TitleBarMaxButton |
0x00000004 |
Кнопка максимизации. |
QStyle::SC_TitleBarCloseButton |
0x00000008 |
Кнопка закрытия. |
QStyle::SC_TitleBarLabel |
0x00000100 |
Метка заголовка окна. |
QStyle::SC_TitleBarNormalButton |
0x00000010 |
Обычная (восстановить) кнопка. |
QStyle::SC_TitleBarShadeButton |
0x00000020 |
Кнопка затемнения. |
QStyle::SC_TitleBarUnshadeButton |
0x00000040 |
Кнопка отмены затемнения. |
QStyle::SC_TitleBarContextHelpButton |
0x00000080 |
Кнопка справки по контексту. |
QStyle::SC_DialHandle |
0x00000002 |
Движок циферблата (то, что используется для управления циферблатом). |
QStyle::SC_DialGroove |
0x00000001 |
Паз циферблата. |
QStyle::SC_DialTickmarks |
0x00000004 |
Отметки циферблата. |
QStyle::SC_GroupBoxFrame |
0x00000008 |
Рамка рамки группы. |
QStyle::SC_GroupBoxLabel |
0x00000002 |
Заголовок рамки группы. |
QStyle::SC_GroupBoxCheckBox |
0x00000001 |
Необязательная галочка в рамке группы. |
QStyle::SC_GroupBoxContents |
0x00000004 |
Содержимое рамки группы. |
QStyle::SC_MdiNormalButton |
0x00000002 |
Обычная кнопка для подокна MDI в строке меню. |
QStyle::SC_MdiMinButton |
0x00000001 |
Кнопка минимизации для подокна MDI в строке меню. |
QStyle::SC_MdiCloseButton |
0x00000004 |
Кнопка закрытия для подокна MDI в строке меню. |
QStyle::SC_All |
0xffffffff |
Специальное значение, которое соответствует всем подэлементам. |
Тип SubControls — это псевдоним для QFlags<SubControl>. Он хранит логическое ИЛИ сочетание значений SubControl.
См. также ComplexControl.
enum 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 — это результат объединения по оператору OR одного или нескольких типов элементов управления.
Эта функция вызывается системой макетов. Она используется только в том случае, если 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().
В таблице ниже перечислены сложные элементы управления и соответствующие подклассы QStyleOptionComplex. Параметры стиля содержат все параметры, необходимые для отрисовки элементов управления, включая 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. Параметры стиля содержат все параметры, необходимые для отрисовки элементов управления, включая QStyleOption::state, который хранит флаги стиля, используемые при отрисовке.
Обратите внимание, что если элемент управления не указан здесь, это означает, что он использует обычный объект QStyleOption.
END_OF_DOCUMENT_MARKER| Элемент управления | 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 | Устанавливается, если кнопка находится в состоянии NoChange. | ||
| State_Sunken | Устанавливается, если кнопка нажата (т.е., нажата кнопка мыши или клавиша пробела на кнопке). | ||
| CE_ProgressBarContents, CE_ProgressBarLabel, CE_ProgressBarGroove | QStyleOptionProgressBar | State_Enabled | Устанавливается, если полоса прогресса включена. |
| State_HasFocus | Устанавливается, если полоса прогресса имеет фокус ввода. | ||
| CE_Header, CE_HeaderSection, CE_HeaderLabel | QStyleOptionHeader | ||
| CE_TabBarTab, CE_TabBarTabShape, CE_TabBarTabLabel | QStyleOptionTab | State_Enabled | Устанавливается, если вкладная панель включена. |
| State_Selected | Вкладная панель в настоящее время выбрана. | ||
| State_HasFocus | Устанавливается, если вкладка вкладки имеет фокус ввода. | ||
| CE_ToolButtonLabel | QStyleOptionToolButton | State_Enabled | Устанавливается, если кнопка инструмента включена. |
| State_HasFocus | Устанавливается, если кнопка инструмента имеет фокус ввода. | ||
| State_Sunken | Устанавливается, если кнопка инструмента нажата (т.е., нажата кнопка мыши или клавиша пробела). | ||
| State_On | Устанавливается, если кнопка инструмента является переключателем и включена. | ||
| State_AutoRaise | Устанавливается, если для кнопки инструмента включен режим автоматического поднятия. | ||
| State_MouseOver | Устанавливается, если указатель мыши находится над кнопкой инструмента. | ||
| State_Raised | Устанавливается, если кнопка не нажата и не активна. | ||
| CE_ToolBoxTab | QStyleOptionToolBox | State_Selected | Вкладка в настоящее время выбрана. |
| CE_HeaderSection | QStyleOptionHeader | State_Sunken | Указывает, что раздел нажат. |
| State_UpArrow | Указывает, что индикатор сортировки должен указывать вверх. | ||
| State_DownArrow | Указывает, что индикатор сортировки должен указывать вниз. |
См. также drawPrimitive() и drawComplexControl().
[virtual] void QStyle::drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const
Рисует заданную pixmap в указанном rectangle в соответствии с указанным alignment, используя предоставленный painter.
См. также drawItemText().
[virtual] void QStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const
Рисует заданный text в указанном rectangle с использованием предоставленного painter и palette.
Текст рисуется с помощью пера painter и выравнивается и обрезается в соответствии с указанным alignment. Если задан явный textRole, текст рисуется с использованием цвета palette для заданной роли. Параметр enabled указывает, включен ли элемент; при переопределении этой функции параметр enabled должен влиять на способ рисования элемента.
См. также Qt::Alignment и drawItemPixmap().
[pure virtual] void QStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const
Рисует заданный примитивный element с помощью предоставленного painter, используя параметры стиля, указанные в option.
Аргумент widget является необязательным и может содержать виджет, который может помочь в рисовании примитивного элемента.
В таблице ниже перечислены примитивные элементы и соответствующие подклассы стилевых опций. Стилевые опции содержат все параметры, необходимые для рисования элементов, включая QStyleOption::state, который содержит флаги стиля, используемые при рисовании. В таблице также описываются флаги, которые устанавливаются при приведении заданного option к соответствующему подклассу.
Обратите внимание, что если примитивный элемент здесь не указан, это означает, что он использует обычный объект QStyleOption.
| Примитивный элемент | QStyleOption Подкласс | Флаг стиля | Замечание |
|---|---|---|---|
| PE_FrameFocusRect | QStyleOptionFocusRect | State_FocusAtBorder | Указывает, находится ли фокус на границе или внутри виджета. |
| PE_IndicatorCheckBox | QStyleOptionButton | State_NoChange | Указывает "трёхсостояниевую" галочку. |
| State_On | Указывает, что индикатор отмечен. | ||
| PE_IndicatorRadioButton | QStyleOptionButton | State_On | Указывает, что радиокнопка выбрана. |
| State_NoChange | Указывает "трёхсостояниевый" контроллер. | ||
| State_Enabled | Указывает, что контроллер включен. | ||
| PE_IndicatorBranch | QStyleOption | State_Children | Указывает, что должен быть нарисован элемент управления для раскрытия дерева, чтобы показать дочерние элементы. |
| State_Item | Указывает, что должна быть нарисована горизонтальная ветвь (для отображения дочернего элемента). | ||
| State_Open | Указывает, что ветвь дерева раскрыта. | ||
| State_Sibling | Указывает, что должна быть нарисована вертикальная линия (для отображения элемента-близнеца). | ||
| PE_IndicatorHeaderArrow | QStyleOptionHeader | State_UpArrow | Указывает, что стрелка должна быть нарисована вверх; в противном случае — вниз. |
| PE_FrameGroupBox, PE_Frame, PE_FrameLineEdit, PE_FrameMenu, PE_FrameDockWidget, PE_FrameWindow | QStyleOptionFrame | State_Sunken | Указывает, что рамка должна быть утопленной. |
| PE_IndicatorToolBarHandle | QStyleOption | State_Horizontal | Указывает, что ручка окна горизонтальна, а не вертикальна. |
| PE_IndicatorSpinPlus, PE_IndicatorSpinMinus, PE_IndicatorSpinUp, PE_IndicatorSpinDown, | QStyleOptionSpinBox | State_Sunken | Указывает, что кнопка нажата. |
| PE_PanelButtonCommand | QStyleOptionButton | State_Enabled | Устанавливается, если кнопка активна. |
| State_HasFocus | Устанавливается, если кнопка имеет фокус ввода. | ||
| State_Raised | Устанавливается, если кнопка не нажата, не включена и не плоская. | ||
| State_On | Устанавливается, если кнопка — переключатель и включена. | ||
| State_Sunken | Устанавливается, если кнопка нажата (т.е., нажата кнопка мыши или клавиша пробела на кнопке). |
См. также drawComplexControl() и drawControl().
[pure virtual] QPixmap QStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const
Возвращает копию заданной pixmap, стилизованной в соответствии с заданным iconMode и учитывающей цветовую схему, заданную option.
Параметр option может передавать дополнительную информацию, но он должен содержать цветовую схему.
Обратите внимание, что не все pixmap будут соответствовать, в этом случае возвращаемая pixmap является простой копией.
См. также QIcon.
[pure virtual] QStyle::SubControl QStyle::hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget = nullptr) const
Возвращает подконтроль в заданной position в заданном сложном control (со стилизованными параметрами, заданными option).
Обратите внимание, что position выражена в координатах экрана.
Аргумент option — указатель на объект QStyleOptionComplex (или один из его подклассов). Объект можно привести к соответствующему типу с помощью функции qstyleoption_cast(). Подробности см. в drawComplexControl(). Аргумент widget является необязательным и может содержать дополнительную информацию для функции.
См. также drawComplexControl() и subControlRect().
[virtual] QRect QStyle::itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const
Возвращает область внутри заданного rectangle, в которой необходимо отобразить указанную pixmap в соответствии с заданным alignment.
[virtual] QRect QStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const
Возвращает область внутри заданного rectangle, в которой необходимо отобразить предоставленный text в соответствии с указанными metrics и alignment. Параметр enabled указывает, активен ли связанный элемент.
Если заданный rectangle больше, чем область, необходимая для отображения text, возвращаемый прямоугольник будет смещён внутри rectangle в соответствии с указанным alignment. Например, если alignment равен Qt::AlignCenter, возвращаемый прямоугольник будет центрирован внутри rectangle. Если заданный rectangle меньше, чем необходимая область, возвращаемый прямоугольник будет самым маленьким прямоугольником, достаточным для отображения text.
См. также Qt::Alignment.
[pure virtual] int QStyle::layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = 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:
Некоторые пиксельные метрики вызываются из виджетов, а некоторые только внутренне стилем. Если метрика не вызывается виджетом, автору стиля предоставляется право на её использование. Для некоторых стилей это может быть не уместно.
[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:
См. также 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(). См. таблицу ниже для соответствующих преобразований option:
[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.
[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.1/qstyle.html