Класс QStyle
Класс QStyle — это абстрактный базовый класс, который инкапсулирует вид и ощущения графического интерфейса пользователя. Подробнее...
| Заголовок: | #include <QStyle> |
| qmake: | QT += widgets |
| Наследует: | QObject |
| Наследуется от: |
Открытые типы
| перечисление | ComplexControl { CC_SpinBox, CC_ComboBox, CC_ScrollBar, CC_Slider, ..., CC_CustomBase } |
| перечисление | ContentsType { CT_CheckBox, CT_ComboBox, CT_HeaderSection, CT_LineEdit, ..., CT_MdiControls } |
| перечисление | ControlElement { CE_PushButton, CE_PushButtonBevel, CE_PushButtonLabel, CE_DockWidgetTitle, ..., CE_ShapedFrame } |
| перечисление | PixelMetric { PM_ButtonMargin, PM_DockWidgetTitleBarButtonMargin, PM_ButtonDefaultIndicator, PM_MenuButtonIndicator, ..., PM_DefaultLayoutSpacing } |
| перечисление | PrimitiveElement { PE_FrameStatusBar, PE_PanelButtonCommand, PE_FrameDefaultButton, PE_PanelButtonBevel, ..., PE_PanelMenu } |
| перечисление | RequestSoftwareInputPanel { RSIP_OnMouseClickAndAlreadyFocused, RSIP_OnMouseClick } |
| перечисление | StandardPixmap { SP_TitleBarMinButton, SP_TitleBarMenuButton, SP_TitleBarMaxButton, SP_TitleBarCloseButton, ..., SP_CustomBase } |
| флаги | State |
| перечисление | StateFlag { State_None, State_Active, State_AutoRaise, State_Children, ..., State_Small } |
| перечисление | StyleHint { SH_EtchDisabledText, SH_DitherDisabledText, SH_ScrollBar_ContextMenu, SH_ScrollBar_MiddleClickAbsolutePosition, ..., SH_SpinBox_StepModifier } |
| перечисление | SubControl { SC_None, SC_ScrollBarAddLine, SC_ScrollBarSubLine, SC_ScrollBarAddPage, ..., SC_All } |
| флаги | SubControls |
| перечисление | SubElement { SE_PushButtonContents, SE_PushButtonFocusRect, SE_PushButtonLayoutItem, SE_CheckBoxIndicator, ..., SE_ToolBarHandle } |
Общедоступные функции
| QStyle() | |
| виртуальный | ~QStyle() |
| int | combinedLayoutSpacing(QSizePolicy::ControlTypes controls1, QSizePolicy::ControlTypes controls2, Qt::Orientation orientation, QStyleOption *option = nullptr, QWidget *widget = nullptr) const |
| виртуальный void | drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const = 0 |
| виртуальный void | drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const = 0 |
| виртуальный void | drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const |
| виртуальный void | drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const |
| виртуальный void | drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const = 0 |
| виртуальный QPixmap | generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const = 0 |
| виртуальный QStyle::SubControl | hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget = nullptr) const = 0 |
| виртуальный QRect | itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const |
| виртуальный QRect | itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const |
| виртуальный int | layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = ..., const QWidget *widget = ...) const = 0 |
| виртуальный int | pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const = 0 |
| виртуальный void | polish(QWidget *widget) |
| виртуальный void | polish(QApplication *application) |
| виртуальный void | polish(QPalette &palette) |
| const QStyle * | proxy() const |
| виртуальный QSize | sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const = 0 |
| виртуальный QIcon | standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = ..., const QWidget *widget = ...) const = 0 |
| виртуальный QPalette | standardPalette() const |
| виртуальный int | styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const = 0 |
| виртуальный QRect | subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget = nullptr) const = 0 |
| виртуальный QRect | subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const = 0 |
| виртуальный void | unpolish(QWidget *widget) |
| виртуальный void | unpolish(QApplication *application) |
- 31 общедоступные функции унаследованы от QObject
Статические общедоступные члены
| QRect | alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle) |
| int | sliderPositionFromValue(int min, int max, int logicalValue, int span, bool upsideDown = false) |
| int | sliderValueFromPosition(int min, int max, int position, int span, bool upsideDown = false) |
| const QMetaObject | staticMetaObject |
| Qt::Alignment | visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment) |
| QPoint | visualPos(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QPoint &logicalPosition) |
| QRect | visualRect(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QRect &logicalRectangle) |
- 9 статических публичных членов, унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 публичный слот, унаследованный от QObject
- 2 сигнала, унаследованные от QObject
- 9 защищённых функций, унаследованных от QObject
Подробное описание
Класс QStyle — это абстрактный базовый класс, который инкапсулирует вид и поведение графического интерфейса пользователя.
Qt содержит набор подклассов QStyle, которые эмулируют стили различных платформ, поддерживаемых Qt (QWindowsStyle, QMacStyle и т. д.). По умолчанию эти стили включены в модуль Qt GUI. Стиль также может быть доступен в качестве плагина.
Встроенные виджеты Qt используют QStyle практически для всех операций отрисовки, обеспечивая точное отображение нативных виджетов. На диаграмме ниже показан виджет QComboBox в девяти различных стилях.
Разделы:
Установка стиля
Стиль всей программы можно установить, используя функцию QApplication::setStyle(). Его также может указать пользователь, используя параметр командной строки -style:
./myapplication -style windows
Если стиль не задан, Qt выберет наиболее подходящий стиль для платформы или среды рабочего стола пользователя.
Стиль также можно установить на отдельный виджет, используя функцию QWidget::setStyle().
Разработка виджетов с учётом стиля
Если вы разрабатываете пользовательские виджеты и хотите, чтобы они хорошо выглядели на всех платформах, вы можете использовать функции QStyle для выполнения частей отрисовки виджета, таких как drawItemText(), drawItemPixmap(), drawPrimitive(), drawControl() и drawComplexControl().
Большинство функций отрисовки QStyle принимают четыре аргумента:
- значение перечисления, определяющее графический элемент для отрисовки
- QStyleOption, определяющий, как и где рендерить этот элемент
- QPainter, который должен использоваться для отрисовки элемента
- QWidget, на котором выполняется отрисовка (необязательно)
Например, если вы хотите нарисовать прямоугольник фокуса на своём виджете, вы можете написать:
void MyWidget::paintEvent(QPaintEvent * /* event */)
{
QPainter painter(this);
QStyleOptionFocusRect option;
option.initFrom(this);
option.backgroundColor = palette().color(QPalette::Background);
style()->drawPrimitive(QStyle::PE_FrameFocusRect, &option, &painter, this);
} QStyle получает всю необходимую информацию для рендеринга графического элемента из объекта QStyleOption. Виджет передаётся в качестве последнего аргумента, на случай если стилю потребуются специальные эффекты (например, анимированные стандартные кнопки на macOS), но он не обязателен. На самом деле вы можете использовать QStyle для отрисовки на любом устройстве рисования, а не только на виджетах, правильно задав QPainter.
QStyleOption имеет различные подклассы для различных типов графических элементов, которые могут быть нарисованы. Например, PE_FrameFocusRect ожидает аргумент QStyleOptionFocusRect.
Для повышения скорости операций отрисовки QStyleOption и его подклассы имеют общедоступные данные членов. См. документацию класса QStyleOption для получения подробностей о его использовании.
Для удобства Qt предоставляет класс QStylePainter, который объединяет QStyle, QPainter и QWidget. Это позволяет писать
QStylePainter painter(this);
...
painter.drawPrimitive(QStyle::PE_FrameFocusRect, option); вместо
QPainter painter(this);
...
style()->drawPrimitive(QStyle::PE_FrameFocusRect, &option, &painter, this); Создание пользовательского стиля
Вы можете создать пользовательский вид и поведение для своего приложения, создав пользовательский стиль. Существует два подхода к созданию пользовательского стиля. В статическом подходе вы либо выбираете существующий класс QStyle, наследуете его и переопределяете виртуальные функции для предоставления пользовательского поведения, либо вы создаёте весь класс QStyle с нуля. В динамическом подходе вы изменяете поведение системного стиля во время выполнения. Статический подход описан ниже. Динамический подход описан в QProxyStyle.
Первый шаг в статическом подходе — выбрать один из стилей, предоставляемых Qt, на основе которого вы создадите свой пользовательский стиль. Ваш выбор класса QStyle будет зависеть от того, какой стиль наиболее похож на ваш желаемый стиль. Наиболее обобщённый класс, который вы можете использовать в качестве базового, это QCommonStyle (а не QStyle). Это связано с тем, что Qt требует, чтобы его стили были QCommonStyle.
В зависимости от того, какие части базового стиля вы хотите изменить, необходимо переопределить функции, используемые для отрисовки этих частей интерфейса. Для иллюстрации изменим вид стрелок для поля ввода QSpinBox, нарисованных QWindowsStyle. Стрелки — это элементы-примитивы, которые отрисовываются функцией drawPrimitive(), поэтому нам нужно переопределить эту функцию. Нам нужен следующий класс:
class CustomStyle : public QProxyStyle
{
Q_OBJECT
public:
CustomStyle();
~CustomStyle() {}
void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget) const override;
}; Для отрисовки стрелок вверх и вниз QSpinBox использует примитивы PE_IndicatorSpinUp и PE_IndicatorSpinDown. Вот как переопределить функцию drawPrimitive() для их различной отрисовки:
void CustomStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget) const
{
if (element == PE_IndicatorSpinUp || element == PE_IndicatorSpinDown) {
QPolygon points(3);
int x = option->rect.x();
int y = option->rect.y();
int w = option->rect.width() / 2;
int h = option->rect.height() / 2;
x += (option->rect.width() - w) / 2;
y += (option->rect.height() - h) / 2;
if (element == PE_IndicatorSpinUp) {
points[0] = QPoint(x, y + h);
points[1] = QPoint(x + w, y + h);
points[2] = QPoint(x + w / 2, y);
} else { // PE_SpinBoxDown
points[0] = QPoint(x, y);
points[1] = QPoint(x + w, y);
points[2] = QPoint(x + w / 2, y + h);
}
if (option->state & State_Enabled) {
painter->setPen(option->palette.mid().color());
painter->setBrush(option->palette.buttonText());
} else {
painter->setPen(option->palette.buttonText().color());
painter->setBrush(option->palette.mid());
}
painter->drawPolygon(points);
} else {
QProxyStyle::drawPrimitive(element, option, painter, widget);
}
} Обратите внимание, что мы не используем аргумент widget, за исключением того, чтобы передать его в функцию QWindowStyle::drawPrimitive(). Как уже упоминалось ранее, информация о том, что нужно рисовать и как это должно быть нарисовано, определяется объектом QStyleOption, поэтому нет необходимости спрашивать у виджета.
Если вам необходимо использовать аргумент widget для получения дополнительной информации, будьте внимательны, чтобы убедиться, что он не равен 0 и что он имеет правильный тип перед использованием.
const QSpinBox *spinBox = qobject_cast<const QSpinBox *>(widget);
if (spinBox) {
...
} При реализации пользовательского стиля нельзя предполагать, что виджет является QSpinBox только потому, что значение перечисления называется PE_IndicatorSpinUp или PE_IndicatorSpinDown.
Документация для примера Styles более подробно описывает эту тему.
Предупреждение: В настоящее время стили Qt для пользовательских подклассов QStyle не поддерживаются. Мы планируем решить эту проблему в будущей версии.
Использование пользовательского стиля
Существует несколько способов использования пользовательского стиля в приложении Qt. Самый простой способ — передать пользовательский стиль статической функции QApplication::setStyle() перед созданием объекта QApplication:
#include <QtWidgets>
#include "customstyle.h"
int main(int argc, char *argv[])
{
QApplication::setStyle(new CustomStyle);
QApplication app(argc, argv);
QSpinBox spinBox;
spinBox.show();
return app.exec();
} Вы можете вызвать QApplication::setStyle() в любое время, но, вызвав её до конструктора, вы гарантируете, что предпочтения пользователя, установленные с помощью параметра командной строки -style будут учтены.
Вы можете захотеть сделать ваш пользовательский стиль доступным для использования в других приложениях, которые могут не принадлежать вам и, следовательно, не доступны для компиляции вами. Система плагинов Qt позволяет создавать стили в качестве плагинов. Стиль, созданный как плагин, загружается как общий объект во время выполнения самим Qt. Обратитесь к документации по плагинам Qt для получения дополнительной информации о создании плагина стиля.
Скомпилируйте ваш плагин и поместите его в директорию Qt plugins/styles. Теперь у нас есть загружаемый стиль, который Qt может автоматически загрузить. Чтобы использовать ваш новый стиль с существующими приложениями, просто запустите приложение со следующим аргументом:
./myapplication -style custom
Приложение будет использовать вид и поведение от реализованного вами пользовательского стиля.
Рабочие столы с ориентацией справа налево
Языки, написанные справа налево (такие как арабский и иврит), обычно также зеркалят всю компоновку виджетов и требуют, чтобы свет исходил из верхнего правого угла экрана, а не из верхнего левого.
Если вы создаёте пользовательский стиль, вам следует уделять особое внимание при отрисовке асимметричных элементов, чтобы убедиться, что они также правильно отображаются в зеркальной компоновке. Простой способ проверить ваши стили — запустить приложения с параметром командной строки -reverse или вызвать QApplication::setLayoutDirection() в вашей функции main().
Вот некоторые моменты, которые следует учитывать при создании стиля, который будет хорошо работать в среде справа налево:
- subControlRect() и subElementRect() возвращают прямоугольники в экранных координатах
- QStyleOption::direction указывает, в каком направлении должен быть нарисован элемент
- Если стиль не учитывает направление слева направо/справа налево, он будет отображать элементы так, как если бы это было слева направо
- visualRect(), visualPos() и visualAlignment() — это полезные функции, которые выполняют преобразование из логического представления в экранное.
- alignedRect() вернет логический прямоугольник, выровненный по текущему направлению
Стили в представлениях элементов
Отрисовка элементов в представлениях выполняется делегатом. Делегат по умолчанию Qt, QStyledItemDelegate, также используется для вычисления ограничивающих прямоугольников элементов и их вложенных элементов для различных типов ролей данных элементов data roles, которые поддерживает QStyledItemDelegate. Описание класса QStyledItemDelegate содержит информацию о поддерживаемых типах данных и ролях. Подробнее о ролях данных элементов можно узнать в разделе Программирование Model/View.
Когда QStyledItemDelegate отрисовывает свои элементы, он рисует CE_ItemViewItem и вычисляет их размер с помощью CT_ItemViewItem. Обратите внимание также, что он использует SE_ItemViewItemText для установки размера редакторов. При реализации стиля для настройки отрисовки представлений элементов необходимо проверить реализацию QCommonStyle (и любых других подклассов, от которых наследуется ваш стиль). Таким образом, вы узнаете, какие и как другие элементы стиля отрисовываются, и затем сможете переопределить отрисовку элементов, которые должны быть нарисованы по-другому.
Мы приводим небольшой пример, в котором мы настраиваем отрисовку фонов элементов.
switch (element) {
case (PE_PanelItemViewItem): {
painter->save();
QPoint topLeft = option->rect.topLeft();
QPoint bottomRight = option->rect.topRight();
QLinearGradient backgroundGradient(topLeft, bottomRight);
backgroundGradient.setColorAt(0.0, QColor(Qt::yellow).lighter(190));
backgroundGradient.setColorAt(1.0, Qt::white);
painter->fillRect(option->rect, QBrush(backgroundGradient));
painter->restore();
break;
}
default:
QProxyStyle::drawPrimitive(element, option, painter, widget);
} Примитивный элемент PE_PanelItemViewItem отвечает за отрисовку фона элементов и вызывается из реализации QCommonStyle CE_ItemViewItem.
Для добавления поддержки отрисовки новых типов данных и ролей данных элементов необходимо создать собственный делегат. Но если вам нужно только поддерживать типы данных, реализованные делегатом по умолчанию, настраиваемый стиль не нуждается в сопровождающем делегате. Описание класса QStyledItemDelegate содержит дополнительную информацию о пользовательских делегатах.
Отрисовка заголовков представлений элементов также выполняется стилем, предоставляя контроль над размером элементов заголовка и размером строк и столбцов.
См. также QStyleOption, QStylePainter, Пример стилей, Стили и виджеты, поддерживающие стили, QStyledItemDelegate и Стилизация.
Документация по типам членов
enum QStyle::ComplexControl
Это перечисление описывает доступные сложные элементы управления. Сложные элементы управления имеют различное поведение в зависимости от того, где пользователь щелкает по ним или какие клавиши нажимаются.
| Константа | Значение | Описание |
|---|---|---|
QStyle::CC_SpinBox |
0 |
Поле ввода со списком значений, например, QSpinBox. |
QStyle::CC_ComboBox |
1 |
Список выбора, например, QComboBox. |
QStyle::CC_ScrollBar |
2 |
Полоса прокрутки, например, QScrollBar. |
QStyle::CC_Slider |
3 |
Ползунок, например, QSlider. |
QStyle::CC_ToolButton |
4 |
Кнопка панели инструментов, например, QToolButton. |
QStyle::CC_TitleBar |
5 |
Строка заголовка, например, те, которые используются в QMdiSubWindow. |
QStyle::CC_GroupBox |
7 |
Группа, например, QGroupBox. |
QStyle::CC_Dial |
6 |
Циферблат, например, QDial. |
QStyle::CC_MdiControls |
8 |
Кнопки сворачивания, закрытия и нормального состояния в строке меню для развернутого дочернего окна MDI. |
QStyle::CC_CustomBase |
0xf0000000 |
Базовое значение для пользовательских сложных элементов управления. Пользовательские значения должны быть больше этого значения. |
См. также SubControl и drawComplexControl().
enum QStyle::ContentsType
Это перечисление описывает доступные типы содержимого. Они используются для вычисления размеров содержимого различных виджетов.
| Константа | Значение | Описание |
|---|---|---|
QStyle::CT_CheckBox |
1 |
Флажок, например, QCheckBox. |
QStyle::CT_ComboBox |
4 |
Список выбора, например, QComboBox. |
QStyle::CT_HeaderSection |
19 |
Секция заголовка, например, QHeader. |
QStyle::CT_LineEdit |
14 |
Поле редактирования, например, QLineEdit. |
QStyle::CT_Menu |
10 |
Меню, например, QMenu. |
QStyle::CT_MenuBar |
9 |
Строка меню, например, QMenuBar. |
QStyle::CT_MenuBarItem |
8 |
Элемент строки меню, например, кнопки в QMenuBar. |
QStyle::CT_MenuItem |
7 |
Элемент меню, например, QMenuItem. |
QStyle::CT_ProgressBar |
6 |
Индикатор выполнения, например, QProgressBar. |
QStyle::CT_PushButton |
0 |
Кнопка, например, QPushButton. |
QStyle::CT_RadioButton |
2 |
Переключатель, например, QRadioButton. |
QStyle::CT_SizeGrip |
16 |
Маркер изменения размера, например, QSizeGrip. |
QStyle::CT_Slider |
12 |
Ползунок, например, QSlider. |
QStyle::CT_ScrollBar |
13 |
Полоса прокрутки, например, QScrollBar. |
QStyle::CT_SpinBox |
15 |
Поле ввода со списком значений, например, QSpinBox. |
QStyle::CT_Splitter |
5 |
Разделитель, например, QSplitter. |
QStyle::CT_TabBarTab |
11 |
Вкладка на панели вкладок, например, QTabBar. |
QStyle::CT_TabWidget |
17 |
Виджет вкладок, например, QTabWidget. |
QStyle::CT_ToolButton |
3 |
Кнопка панели инструментов, например, QToolButton. |
QStyle::CT_GroupBox |
20 |
Группа, например, QGroupBox. |
QStyle::CT_ItemViewItem |
22 |
Элемент внутри представления элементов. |
QStyle::CT_CustomBase |
0xf0000000 |
Базовое значение для пользовательских типов содержимого. Пользовательские значения должны быть больше этого значения. |
QStyle::CT_MdiControls |
21 |
Кнопки сворачивания, нормального состояния и закрытия в строке меню для развернутого дочернего окна MDI. |
См. также sizeFromContents().
enum QStyle::ControlElement
Это перечисление представляет элемент управления. Элемент управления — это часть виджета, которая выполняет некоторое действие или отображает информацию пользователю.
| Постоянная | Значение | Описание |
|---|---|---|
QStyle::CE_PushButton |
0 |
Кнопка QPushButton, отрисовывает CE_PushButtonBevel, CE_PushButtonLabel и PE_FrameFocusRect. |
QStyle::CE_PushButtonBevel |
1 |
Ребро и стандартный индикатор кнопки QPushButton. |
QStyle::CE_PushButtonLabel |
2 |
Метка (значок со текстом или пиктограммой) кнопки QPushButton. |
QStyle::CE_DockWidgetTitle |
30 |
Заголовок окна причаливания. |
QStyle::CE_Splitter |
28 |
Двойной разделитель; также см. QSplitter. |
QStyle::CE_CheckBox |
3 |
Флажок QCheckBox, отрисовывает PE_IndicatorCheckBox, CE_CheckBoxLabel и PE_FrameFocusRect. |
QStyle::CE_CheckBoxLabel |
4 |
Метка (текст или пиктограмма) флажка QCheckBox. |
QStyle::CE_RadioButton |
5 |
Радиокнопка QRadioButton, отрисовывает PE_IndicatorRadioButton, CE_RadioButtonLabel и PE_FrameFocusRect. |
QStyle::CE_RadioButtonLabel |
6 |
Метка (текст или пиктограмма) радиокнопки QRadioButton. |
QStyle::CE_TabBarTab |
7 |
Вкладка и метка внутри QTabBar. |
QStyle::CE_TabBarTabShape |
8 |
Форма вкладки внутри панели вкладок. |
QStyle::CE_TabBarTabLabel |
9 |
Метка на вкладке. |
QStyle::CE_ProgressBar |
10 |
Полоса прогресса QProgressBar, отрисовывает CE_ProgressBarGroove, CE_ProgressBarContents и CE_ProgressBarLabel. |
QStyle::CE_ProgressBarGroove |
11 |
Паз, в котором нарисован индикатор прогресса в QProgressBar. |
QStyle::CE_ProgressBarContents |
12 |
Индикатор прогресса QProgressBar. |
QStyle::CE_ProgressBarLabel |
13 |
Текстовая метка QProgressBar. |
QStyle::CE_ToolButtonLabel |
22 |
Метка кнопки инструмента. |
QStyle::CE_MenuBarItem |
20 |
Пункт меню в QMenuBar. |
QStyle::CE_MenuBarEmptyArea |
21 |
Пустая область QMenuBar. |
QStyle::CE_MenuItem |
14 |
Пункт меню в QMenu. |
QStyle::CE_MenuScroller |
15 |
Области прокрутки в QMenu, когда стиль поддерживает прокрутку. |
QStyle::CE_MenuTearoff |
18 |
Пункт меню, представляющий отрывной раздел QMenu. |
QStyle::CE_MenuEmptyArea |
19 |
Область в меню без пунктов меню. |
QStyle::CE_MenuHMargin |
17 |
Дополнительное горизонтальное пространство слева/справа в меню. |
QStyle::CE_MenuVMargin |
16 |
Дополнительное вертикальное пространство сверху/снизу в меню. |
QStyle::CE_ToolBoxTab |
26 |
Вкладка и метка вкладки инструментов в QToolBox. |
QStyle::CE_SizeGrip |
27 |
Маркер изменения размера окна; также см. QSizeGrip. |
QStyle::CE_Header |
23 |
Заголовок. |
QStyle::CE_HeaderSection |
24 |
Раздел заголовка. |
QStyle::CE_HeaderLabel |
25 |
Метка заголовка. |
QStyle::CE_ScrollBarAddLine |
31 |
Индикатор увеличения строки полосы прокрутки (т.е. прокрутка вниз); также см. QScrollBar. |
QStyle::CE_ScrollBarSubLine |
32 |
Индикатор уменьшения строки полосы прокрутки (т.е. прокрутка вверх). |
QStyle::CE_ScrollBarAddPage |
33 |
Индикатор увеличения страницы полосы прокрутки (т.е. прокрутка вниз страницы). |
QStyle::CE_ScrollBarSubPage |
34 |
Индикатор уменьшения страницы полосы прокрутки (т.е. прокрутка вверх страницы). |
QStyle::CE_ScrollBarSlider |
35 |
Ползунок полосы прокрутки. |
QStyle::CE_ScrollBarFirst |
36 |
Индикатор первой строки полосы прокрутки (т.е. начало). |
QStyle::CE_ScrollBarLast |
37 |
Индикатор последней строки полосы прокрутки (т.е. конец). |
QStyle::CE_RubberBand |
29 |
Резиновая лента, используемая, например, в представлении значков. |
QStyle::CE_FocusFrame |
38 |
Рамка фокуса, управляемая стилем. |
QStyle::CE_ItemViewItem |
45 |
Элемент внутри представления элементов. |
QStyle::CE_CustomBase |
0xf0000000 |
Базовое значение для пользовательских элементов управления; пользовательские значения должны быть больше этого значения. |
QStyle::CE_ComboBoxLabel |
39 |
Метка нередактируемого QComboBox. |
QStyle::CE_ToolBar |
40 |
Панель инструментов, например, QToolBar. |
QStyle::CE_ToolBoxTabShape |
41 |
Форма вкладки панели инструментов. |
QStyle::CE_ToolBoxTabLabel |
42 |
Метка вкладки панели инструментов. |
QStyle::CE_HeaderEmptyArea |
43 |
Область представления заголовка, где нет разделов заголовка. |
QStyle::CE_ShapedFrame |
46 |
Рамка с формой, заданной в QStyleOptionFrame; см. QFrame. |
См. такжеdrawControl().
перечисление QStyle::PixelMetric
Это перечисление описывает различные доступные пиксельные метрики. Пиксельная метрика — это зависящий от стиля размер, представленный одним значением пикселя.
| Постоянная | Значение | Описание |
|---|---|---|
QStyle::PM_ButtonMargin |
0 |
Количество пробелов между метками кнопок и рамкой. |
QStyle::PM_DockWidgetTitleBarButtonMargin |
76 |
Количество пробелов между метками кнопок панели заголовка виджета причаливания и рамкой. |
QStyle::PM_ButtonDefaultIndicator |
1 |
Ширина рамки индикатора по умолчанию для кнопки. |
QStyle::PM_MenuButtonIndicator |
2 |
Ширина рамки индикатора кнопки меню, пропорциональная высоте виджета. |
QStyle::PM_ButtonShiftHorizontal |
3 |
Горизонтальное смещение содержимого кнопки при нажатии. |
QStyle::PM_ButtonShiftVertical |
4 |
Вертикальное смещение содержимого кнопки при нажатии. |
QStyle::PM_DefaultFrameWidth |
5 |
Ширина рамки по умолчанию (обычно 2). |
QStyle::PM_SpinBoxFrameWidth |
6 |
Ширина рамки поля ввода со списком, по умолчанию PM_DefaultFrameWidth. |
QStyle::PM_ComboBoxFrameWidth |
7 |
Ширина рамки раскрывающегося списка, по умолчанию PM_DefaultFrameWidth. |
QStyle::PM_MDIFrameWidth |
PM_MdiSubWindowFrameWidth |
Устарело. Используйте PM_MdiSubWindowFrameWidth вместо этого. |
QStyle::PM_MdiSubWindowFrameWidth |
44 |
Ширина рамки окна MDI. |
QStyle::PM_MDIMinimizedWidth |
PM_MdiSubWindowMinimizedWidth |
Устарело. Используйте PM_MdiSubWindowMinimizedWidth вместо этого. |
QStyle::PM_MdiSubWindowMinimizedWidth |
45 |
Ширина минимизированного окна MDI. |
QStyle::PM_LayoutLeftMargin |
78 |
По умолчанию левый отступ для QLayout. |
QStyle::PM_LayoutTopMargin |
79 |
По умолчанию верхний отступ для QLayout. |
QStyle::PM_LayoutRightMargin |
80 |
По умолчанию правый отступ для QLayout. |
QStyle::PM_LayoutBottomMargin |
81 |
По умолчанию нижний отступ для QLayout. |
QStyle::PM_LayoutHorizontalSpacing |
82 |
По умолчанию горизонтальный интервал для QLayout. |
QStyle::PM_LayoutVerticalSpacing |
83 |
По умолчанию вертикальный интервал для QLayout. |
QStyle::PM_MaximumDragDistance |
8 |
Максимальное допустимое расстояние между указателем мыши и полосой прокрутки при перетаскивании. Превышение заданного расстояния приведет к возврату ползунка в исходное положение; значение -1 отключает это поведение. |
QStyle::PM_ScrollBarExtent |
9 |
Ширина вертикальной полосы прокрутки и высота горизонтальной полосы прокрутки. |
QStyle::PM_ScrollBarSliderMin |
10 |
Минимальная высота ползунка вертикальной полосы прокрутки и минимальная ширина ползунка горизонтальной полосы прокрутки. |
QStyle::PM_SliderThickness |
11 |
Общая толщина ползунка. |
QStyle::PM_SliderControlThickness |
12 |
Толщина ползунка. |
QStyle::PM_SliderLength |
13 |
Длина ползунка. |
QStyle::PM_SliderTickmarkOffset |
14 |
Смещение между метками и ползунком. |
QStyle::PM_SliderSpaceAvailable |
15 |
Доступное пространство для перемещения ползунка. |
QStyle::PM_DockWidgetSeparatorExtent |
16 |
Ширина разделителя в горизонтальном окне причаливания и высота разделителя в вертикальном окне причаливания. |
QStyle::PM_DockWidgetHandleExtent |
17 |
Ширина ручки в горизонтальном окне причаливания и высота ручки в вертикальном окне причаливания. |
QStyle::PM_DockWidgetFrameWidth |
18 |
Ширина рамки окна причаливания. |
QStyle::PM_DockWidgetTitleMargin |
73 |
Отступ заголовка окна причаливания. |
QStyle::PM_MenuBarPanelWidth |
33 |
Ширина рамки панели меню, по умолчанию PM_DefaultFrameWidth. |
QStyle::PM_MenuBarItemSpacing |
34 |
Интервал между элементами панели меню. |
QStyle::PM_MenuBarHMargin |
36 |
Интервал между элементами панели меню и левым/правым краем панели. |
QStyle::PM_MenuBarVMargin |
35 |
Интервал между элементами панели меню и верхним/нижним краем панели. |
QStyle::PM_ToolBarFrameWidth |
52 |
Ширина рамки вокруг панелей инструментов. |
QStyle::PM_ToolBarHandleExtent |
53 |
Ширина ручки панели инструментов в горизонтальной панели инструментов и высота ручки в вертикальной панели инструментов. |
QStyle::PM_ToolBarItemMargin |
55 |
Интервал между рамкой панели инструментов и элементами. |
QStyle::PM_ToolBarItemSpacing |
54 |
Интервал между элементами панели инструментов. |
QStyle::PM_ToolBarSeparatorExtent |
56 |
Ширина разделителя панели инструментов в горизонтальной панели инструментов и высота разделителя в вертикальной панели инструментов. |
QStyle::PM_ToolBarExtensionExtent |
57 |
Ширина кнопки расширения панели инструментов в горизонтальной панели инструментов и высота кнопки в вертикальной панели инструментов. |
QStyle::PM_TabBarTabOverlap |
19 |
Количество пикселей, на которое вкладки должны перекрываться. (В настоящее время используется только в стилях, а не внутри QTabBar) |
QStyle::PM_TabBarTabHSpace |
20 |
Дополнительное пространство, добавленное к ширине вкладки. |
QStyle::PM_TabBarTabVSpace |
21 |
Дополнительное пространство, добавленное к высоте вкладки. |
QStyle::PM_TabBarBaseHeight |
22 |
Высота области между панелью вкладок и страницами вкладок. |
QStyle::PM_TabBarBaseOverlap |
23 |
Количество пикселей, на которое панель вкладок перекрывает базовую панель вкладок. |
QStyle::PM_TabBarScrollButtonWidth |
51 |
|
QStyle::PM_TabBarTabShiftHorizontal |
49 |
Горизонтальное смещение пикселей при выборе вкладки. |
QStyle::PM_TabBarTabShiftVertical |
50 |
Вертикальное смещение пикселей при выборе вкладки. |
QStyle::PM_ProgressBarChunkWidth |
24 |
Ширина блока в индикаторе полосы прогресса. |
QStyle::PM_SplitterWidth |
25 |
Ширина разделителя. |
QStyle::PM_TitleBarHeight |
26 |
Высота панели заголовка. |
QStyle::PM_IndicatorWidth |
37 |
Ширина индикатора флажка. |
QStyle::PM_IndicatorHeight |
38 |
Высота индикатора флажка. |
QStyle::PM_ExclusiveIndicatorWidth |
39 |
Ширина индикатора радиокнопки. |
QStyle::PM_ExclusiveIndicatorHeight |
40 |
Высота индикатора радиокнопки. |
QStyle::PM_MenuPanelWidth |
30 |
Ширина рамки (применяется ко всем сторонам) для QMenu. |
QStyle::PM_MenuHMargin |
28 |
Дополнительная рамка (используется слева и справа) для QMenu. |
QStyle::PM_MenuVMargin |
29 |
Дополнительная рамка (используется для нижней и верхней части) для QMenu. |
QStyle::PM_MenuScrollerHeight |
27 |
Высота области прокрутки в QMenu. |
QStyle::PM_MenuTearoffHeight |
31 |
Высота области отрыва в QMenu. |
QStyle::PM_MenuDesktopFrameWidth |
32 |
Ширина рамки меню на рабочем столе. |
QStyle::PM_HeaderMarkSize |
47 |
Размер индикатора сортировки в заголовке. |
QStyle::PM_HeaderGripMargin |
48 |
Размер маркеры изменения размера в заголовке. |
QStyle::PM_HeaderMargin |
46 |
Размер отступа между индикатором сортировки и текстом. |
QStyle::PM_SpinBoxSliderHeight |
58 |
Высота слайдера дополнительного поля ввода. |
QStyle::PM_ToolBarIconSize |
62 |
Размер значка панели инструментов по умолчанию. |
QStyle::PM_SmallIconSize |
65 |
Размер маленького значка по умолчанию. |
QStyle::PM_LargeIconSize |
66 |
Размер большого значка по умолчанию. |
QStyle::PM_FocusFrameHMargin |
68 |
Горизонтальный отступ, на который рамка фокуса сместит виджет. |
QStyle::PM_FocusFrameVMargin |
67 |
Вертикальный отступ, на который рамка фокуса сместит виджет. |
QStyle::PM_IconViewIconSize |
64 |
Размер значков по умолчанию в представлении значков. |
QStyle::PM_ListViewIconSize |
63 |
Размер значков по умолчанию в списке представлений. |
QStyle::PM_ToolTipLabelFrameWidth |
69 |
Ширина рамки метки всплывающей подсказки. |
QStyle::PM_CheckBoxLabelSpacing |
70 |
Отступ между индикатором флажка и его меткой. |
QStyle::PM_RadioButtonLabelSpacing |
77 |
Отступ между индикатором радиокнопки и его меткой. |
QStyle::PM_TabBarIconSize |
71 |
Размер значка по умолчанию для панели вкладок. |
QStyle::PM_SizeGripSize |
72 |
Размер маркера изменения размера. |
QStyle::PM_MessageBoxIconSize |
74 |
Размер стандартных значков в окне сообщения. |
QStyle::PM_ButtonIconSize |
75 |
Размер значков кнопок по умолчанию. |
QStyle::PM_TextCursorWidth |
85 |
Ширина курсора в строке редактирования или поле редактирования текста. |
QStyle::PM_TabBar_ScrollButtonOverlap |
84 |
Расстояние между левой и правой кнопками на панели вкладок. |
QStyle::PM_TabCloseIndicatorWidth |
86 |
Ширина кнопки закрытия по умолчанию на вкладке на панели вкладок. |
QStyle::PM_TabCloseIndicatorHeight |
87 |
Высота кнопки закрытия по умолчанию на вкладке на панели вкладок. |
QStyle::PM_ScrollView_ScrollBarSpacing |
88 |
Расстояние между рамкой и полосой прокрутки при установке SH_ScrollView_FrameOnlyAroundContents. |
QStyle::PM_ScrollView_ScrollBarOverlap |
89 |
Перекрытие между полосами прокрутки и содержимым прокрутки. |
QStyle::PM_SubMenuOverlap |
90 |
Горизонтальное перекрытие между подменю и его родительским элементом. |
QStyle::PM_TreeViewIndentation |
91 |
Отступ элементов в представлении дерева. Эта перечисление значение было добавлено в Qt 5.4. |
QStyle::PM_HeaderDefaultSectionSizeHorizontal |
92 |
Размер по умолчанию разделов в горизонтальной заголовке. Это перечисление значение было добавлено в Qt 5.5. |
QStyle::PM_HeaderDefaultSectionSizeVertical |
93 |
Размер по умолчанию разделов в вертикальной заголовке. Это перечисление значение было добавлено в Qt 5.5. |
QStyle::PM_TitleBarButtonIconSize |
94 |
Размер значков кнопок на панели заголовка. Это перечисление значение было добавлено в Qt 5.8. |
QStyle::PM_TitleBarButtonSize |
95 |
Размер кнопок на панели заголовка. Это перечисление значение было добавлено в Qt 5.8. |
QStyle::PM_CustomBase |
0xf0000000 |
Базовое значение для настраиваемых пиксельных метрик. Настраиваемые значения должны быть больше этого значения. |
Следующие значения устарели:
| Константа | Значение | Описание |
|---|---|---|
QStyle::PM_DefaultTopLevelMargin |
59 |
Используйте PM_LayoutLeftMargin, PM_LayoutTopMargin, PM_LayoutRightMargin и PM_LayoutBottomMargin вместо этого. |
QStyle::PM_DefaultChildMargin |
60 |
Используйте PM_LayoutLeftMargin, PM_LayoutTopMargin, PM_LayoutRightMargin и PM_LayoutBottomMargin вместо этого. |
QStyle::PM_DefaultLayoutSpacing |
61 |
Используйте PM_LayoutHorizontalSpacing и PM_LayoutVerticalSpacing вместо этого. |
См. также pixelMetric().
enum QStyle::PrimitiveElement
Это перечисление описывает различные примитивные элементы. Примитивный элемент — это общий элемент графического интерфейса, такой как индикатор флажка или фаска кнопки.
| Константа | Значение | Описание |
|---|---|---|
QStyle::PE_FrameStatusBar |
7 |
Устаревшее. Используйте PE_FrameStatusBarItem вместо него. |
QStyle::PE_PanelButtonCommand |
13 |
Кнопка для запуска действия, например, QPushButton. |
QStyle::PE_FrameDefaultButton |
1 |
Эта рамка вокруг стандартной кнопки, например, в диалоговом окне. |
QStyle::PE_PanelButtonBevel |
14 |
Общая панель с выступами кнопки. |
QStyle::PE_PanelButtonTool |
15 |
Панель для кнопки инструмента, используемой с QToolButton. |
QStyle::PE_PanelLineEdit |
18 |
Панель для QLineEdit. |
QStyle::PE_IndicatorButtonDropDown |
24 |
Индикатор для раскрывающейся кнопки, например, кнопки инструмента, отображающей меню. |
QStyle::PE_FrameFocusRect |
3 |
Универсальный индикатор фокуса. |
QStyle::PE_IndicatorArrowUp |
22 |
Универсальная стрелка вверх. |
QStyle::PE_IndicatorArrowDown |
19 |
Универсальная стрелка вниз. |
QStyle::PE_IndicatorArrowRight |
21 |
Универсальная стрелка вправо. |
QStyle::PE_IndicatorArrowLeft |
20 |
Универсальная стрелка влево. |
QStyle::PE_IndicatorSpinUp |
35 |
Символ вверх для виджета скроллинга, например, QSpinBox. |
QStyle::PE_IndicatorSpinDown |
32 |
Символ вниз для виджета скроллинга. |
QStyle::PE_IndicatorSpinPlus |
34 |
Символ увеличения для виджета скроллинга. |
QStyle::PE_IndicatorSpinMinus |
33 |
Символ уменьшения для виджета скроллинга. |
QStyle::PE_IndicatorItemViewItemCheck |
PE_IndicatorViewItemCheck |
Индикатор включения/выключения для элемента представления. |
QStyle::PE_IndicatorCheckBox |
26 |
Индикатор включения/выключения, например, QCheckBox. |
QStyle::PE_IndicatorRadioButton |
31 |
Индикатор эксклюзивного включения/выключения, например, QRadioButton. |
QStyle::PE_IndicatorDockWidgetResizeHandle |
27 |
Маркер изменения размера для окон док-станции. |
QStyle::PE_Frame |
0 |
Общая рамка |
QStyle::PE_FrameMenu |
6 |
Рамка для всплывающих окон/меню; также см. QMenu. |
QStyle::PE_PanelMenuBar |
16 |
Панель для строчных меню. |
QStyle::PE_PanelScrollAreaCorner |
40 |
Панель в нижнем правом (или нижнем левом) углу области прокрутки. |
QStyle::PE_FrameDockWidget |
2 |
Рамка панели для окон док-станции и панелей инструментов. |
QStyle::PE_FrameTabWidget |
8 |
Рамка для виджетов вкладок. |
QStyle::PE_FrameLineEdit |
5 |
Панель-рамка для редактирования строк. |
QStyle::PE_FrameGroupBox |
4 |
Панель-рамка вокруг групповых коробок. |
QStyle::PE_FrameButtonBevel |
10 |
Панель-рамка с выступами кнопки. |
QStyle::PE_FrameButtonTool |
11 |
Панель-рамка для кнопки инструмента. |
QStyle::PE_IndicatorHeaderArrow |
28 |
Стрелка, используемая для указания сортировки в списке или заголовке таблицы. |
QStyle::PE_FrameStatusBarItem |
PE_FrameStatusBar |
Рамка для элемента строки состояния; также см. QStatusBar. |
QStyle::PE_FrameWindow |
9 |
Рамка вокруг окна MDI или окна док-станции. |
QStyle::PE_IndicatorMenuCheckMark |
29 |
Отметка галочки, используемая в меню. |
QStyle::PE_IndicatorProgressChunk |
30 |
Секция индикатора полосы прогресса; также см. QProgressBar. |
QStyle::PE_IndicatorBranch |
23 |
Линии, используемые для представления ветви дерева в представлении дерева. |
QStyle::PE_IndicatorToolBarHandle |
36 |
Маркер панели инструментов. |
QStyle::PE_IndicatorToolBarSeparator |
37 |
Разделитель на панели инструментов. |
QStyle::PE_PanelToolBar |
17 |
Панель для панели инструментов. |
QStyle::PE_PanelTipLabel |
38 |
Панель для метки подсказки. |
QStyle::PE_FrameTabBarBase |
12 |
Рамка, нарисованная для панели вкладок, обычно нарисованная для панели вкладок, которая не является частью виджета вкладок. |
QStyle::PE_IndicatorTabTear |
39 |
Устарело. Используйте PE_IndicatorTabTearLeft вместо этого. |
QStyle::PE_IndicatorTabTearLeft |
PE_IndicatorTabTear |
Индикатор, что вкладка частично прокручена влево от видимой панели вкладок, когда вкладок много. |
QStyle::PE_IndicatorTabTearRight |
49 |
Индикатор, что вкладка частично прокручена вправо от видимой панели вкладок, когда вкладок много. |
QStyle::PE_IndicatorColumnViewArrow |
42 |
Стрелка в QColumnView. |
QStyle::PE_Widget |
41 |
Простой QWidget. |
QStyle::PE_CustomBase |
0xf000000 |
Базовое значение для пользовательских примитивных элементов. Все значения выше этого зарезервированы для пользовательского использования. Пользовательские значения должны быть больше этого значения. |
QStyle::PE_IndicatorItemViewItemDrop |
43 |
Индикатор, отображаемый, когда элемент в представлении элементов приближается к падению во время операции перетаскивания в представлении элементов. |
QStyle::PE_PanelItemViewItem |
44 |
Фон элемента в представлении элементов. |
QStyle::PE_PanelItemViewRow |
45 |
Фон строки в представлении элементов. |
QStyle::PE_PanelStatusBar |
46 |
Панель для строки состояния. |
QStyle::PE_IndicatorTabClose |
47 |
Кнопка закрытия на панели вкладок. |
QStyle::PE_PanelMenu |
48 |
Панель для меню. |
См. также drawPrimitive().
перечисление QStyle::RequestSoftwareInputPanel
Это перечисление описывает условия, при которых виджеты, поддерживающие ввод, запросят программную панель ввода.
| Константа | Значение | Описание |
|---|---|---|
QStyle::RSIP_OnMouseClickAndAlreadyFocused |
0 |
Запрашивает панель ввода, если пользователь щелкнул по виджету, но только если он уже сфокусирован. |
QStyle::RSIP_OnMouseClick |
1 |
Запрашивает панель ввода, если пользователь щелкнул по виджету. |
См. также QInputMethod.
перечисление QStyle::StandardPixmap
Этот перечисление описывает доступные стандартные пиксельмапы. Стандартная пиксельмапа — это пиксельмапа, которая может следовать некоторым существующим стилям или рекомендациям интерфейса.
| Константа | Значение | Описание |
|---|---|---|
QStyle::SP_TitleBarMinButton |
1 |
Кнопка минимизации на панели заголовка (например, в QMdiSubWindow). |
QStyle::SP_TitleBarMenuButton |
0 |
Кнопка меню на панели заголовка. |
QStyle::SP_TitleBarMaxButton |
2 |
Кнопка максимизации на панели заголовка. |
QStyle::SP_TitleBarCloseButton |
3 |
Кнопка закрытия на панели заголовка. |
QStyle::SP_TitleBarNormalButton |
4 |
Кнопка нормального (восстановления) размера на панели заголовка. |
QStyle::SP_TitleBarShadeButton |
5 |
Кнопка затемнения на панели заголовка. |
QStyle::SP_TitleBarUnshadeButton |
6 |
Кнопка отмены затемнения на панели заголовка. |
QStyle::SP_TitleBarContextHelpButton |
7 |
Кнопка справки по контексту на панели заголовка. |
QStyle::SP_MessageBoxInformation |
9 |
Иконка «информация». |
QStyle::SP_MessageBoxWarning |
10 |
Иконка «предупреждение». |
QStyle::SP_MessageBoxCritical |
11 |
Иконка «критическая ошибка». |
QStyle::SP_MessageBoxQuestion |
12 |
Иконка «вопрос». |
QStyle::SP_DesktopIcon |
13 |
Иконка «рабочий стол». |
QStyle::SP_TrashIcon |
14 |
Иконка «корзина». |
QStyle::SP_ComputerIcon |
15 |
Иконка «Мой компьютер». |
QStyle::SP_DriveFDIcon |
16 |
Иконка дискеты. |
QStyle::SP_DriveHDIcon |
17 |
Иконка жёсткого диска. |
QStyle::SP_DriveCDIcon |
18 |
Иконка CD. |
QStyle::SP_DriveDVDIcon |
19 |
Иконка DVD. |
QStyle::SP_DriveNetIcon |
20 |
Иконка сети. |
QStyle::SP_DirHomeIcon |
56 |
Иконка домашней папки. |
QStyle::SP_DirOpenIcon |
21 |
Иконка открытой папки. |
QStyle::SP_DirClosedIcon |
22 |
Иконка закрытой папки. |
QStyle::SP_DirIcon |
38 |
Иконка папки. |
QStyle::SP_DirLinkIcon |
23 |
Иконка ссылки на папку. |
QStyle::SP_DirLinkOpenIcon |
24 |
Иконка ссылки на открытую папку. |
QStyle::SP_FileIcon |
25 |
Иконка файла. |
QStyle::SP_FileLinkIcon |
26 |
Иконка ссылки на файл. |
QStyle::SP_FileDialogStart |
29 |
Иконка «начать» в диалоге выбора файла. |
QStyle::SP_FileDialogEnd |
30 |
Иконка «завершить» в диалоге выбора файла. |
QStyle::SP_FileDialogToParent |
31 |
Иконка «родительская папка» в диалоге выбора файла. |
QStyle::SP_FileDialogNewFolder |
32 |
Иконка «создать новую папку» в диалоге выбора файла. |
QStyle::SP_FileDialogDetailedView |
33 |
Иконка «детали» в диалоге выбора файла. |
QStyle::SP_FileDialogInfoView |
34 |
Иконка «информация о файле» в диалоге выбора файла. |
QStyle::SP_FileDialogContentsView |
35 |
Иконка «содержание» в диалоге выбора файла. |
QStyle::SP_FileDialogListView |
36 |
Иконка «список» в диалоге выбора файла. |
QStyle::SP_FileDialogBack |
37 |
Стрелка назад в диалоге выбора файла. |
QStyle::SP_DockWidgetCloseButton |
8 |
Кнопка закрытия в окнах панели инструментов (см. также QDockWidget). |
QStyle::SP_ToolBarHorizontalExtensionButton |
27 |
Кнопка расширения для горизонтальных панелей инструментов. |
QStyle::SP_ToolBarVerticalExtensionButton |
28 |
Кнопка расширения для вертикальных панелей инструментов. |
QStyle::SP_DialogOkButton |
39 |
Иконка стандартной кнопки «ОК» в QDialogButtonBox. |
QStyle::SP_DialogCancelButton |
40 |
Иконка стандартной кнопки «Отмена» в QDialogButtonBox. |
QStyle::SP_DialogHelpButton |
41 |
Иконка стандартной кнопки «Справка» в QDialogButtonBox. |
QStyle::SP_DialogOpenButton |
42 |
Иконка стандартной кнопки «Открыть» в QDialogButtonBox. |
QStyle::SP_DialogSaveButton |
43 |
Иконка стандартной кнопки «Сохранить» в QDialogButtonBox. |
QStyle::SP_DialogCloseButton |
44 |
Иконка стандартной кнопки «Закрыть» в QDialogButtonBox. |
QStyle::SP_DialogApplyButton |
45 |
Иконка стандартной кнопки «Применить» в QDialogButtonBox. |
QStyle::SP_DialogResetButton |
46 |
Иконка стандартной кнопки «Сбросить» в QDialogButtonBox. |
QStyle::SP_DialogDiscardButton |
47 |
Иконка стандартной кнопки «Отменить» в QDialogButtonBox. |
QStyle::SP_DialogYesButton |
48 |
Иконка стандартной кнопки «Да» в QDialogButtonBox. |
QStyle::SP_DialogNoButton |
49 |
Иконка стандартной кнопки «Нет» в QDialogButtonBox. |
QStyle::SP_ArrowUp |
50 |
Иконка стрелки вверх. |
QStyle::SP_ArrowDown |
51 |
Иконка стрелки вниз. |
QStyle::SP_ArrowLeft |
52 |
Иконка стрелки влево. |
QStyle::SP_ArrowRight |
53 |
Иконка стрелки вправо. |
QStyle::SP_ArrowBack |
54 |
Эквивалентно SP_ArrowLeft, когда текущее направление макета Qt::LeftToRight, в противном случае SP_ArrowRight. |
QStyle::SP_ArrowForward |
55 |
Эквивалентно SP_ArrowRight, когда текущее направление макета Qt::LeftToRight, в противном случае SP_ArrowLeft. |
QStyle::SP_CommandLink |
57 |
Иконка, используемая для обозначения значка ссылки команды в стиле Vista. |
QStyle::SP_VistaShield |
58 |
Иконка, используемая для обозначения запросов UAC в Windows Vista. Вернёт пустое изображение или значок на всех других платформах. |
QStyle::SP_BrowserReload |
59 |
Иконка, указывающая на необходимость перезагрузки текущей страницы. |
QStyle::SP_BrowserStop |
60 |
Значок, указывающий на то, что загрузка страницы должна остановиться. |
QStyle::SP_MediaPlay |
61 |
Значок, указывающий на то, что воспроизведение медиа должно начаться. |
QStyle::SP_MediaStop |
62 |
Значок, указывающий на то, что воспроизведение медиа должно остановиться. |
QStyle::SP_MediaPause |
63 |
Значок, указывающий на то, что воспроизведение медиа должно приостановиться. |
QStyle::SP_MediaSkipForward |
64 |
Значок, указывающий на то, что медиа должно перейти вперёд. |
QStyle::SP_MediaSkipBackward |
65 |
Значок, указывающий на то, что медиа должно перейти назад. |
QStyle::SP_MediaSeekForward |
66 |
Значок, указывающий на то, что медиа должно перемотать вперёд. |
QStyle::SP_MediaSeekBackward |
67 |
Значок, указывающий на то, что медиа должно перемотать назад. |
QStyle::SP_MediaVolume |
68 |
Значок, указывающий на управление громкостью. |
QStyle::SP_MediaVolumeMuted |
69 |
Значок, указывающий на выключенную громкость. |
QStyle::SP_LineEditClearButton |
70 |
Значок стандартной кнопки очистки в QLineEdit. Это значение перечисления было добавлено в Qt 5.2. |
QStyle::SP_CustomBase |
0xf0000000 |
Базовое значение для пользовательских стандартных значков; пользовательские значения должны быть больше этого значения. |
См. также standardIcon().
enum QStyle::StateFlagflags QStyle::State
Это перечисление описывает флаги, используемые при рисовании примитивных элементов.
Обратите внимание, что не все примитивы используют все эти флаги, и флаги могут иметь разный смысл для разных элементов.
| Постоянная | Значение | Описание |
|---|---|---|
QStyle::State_None |
QStyle::State_None |
Указывает, что виджет не имеет состояния. |
QStyle::State_Active |
0x00010000 |
Указывает, что виджет активен. |
QStyle::State_AutoRaise |
0x00001000 |
Используется для указания, следует ли использовать внешний вид автоматического подъёма на кнопке инструмента. |
QStyle::State_Children |
0x00080000 |
Используется для указания, имеет ли ветвь элемента представления дочерние элементы. |
QStyle::State_DownArrow |
0x00000040 |
Используется для указания, должен ли быть виден стрелка вниз на виджете. |
QStyle::State_Editing |
0x00400000 |
Используется для указания, открыт ли редактор на виджете. |
QStyle::State_Enabled |
0x00000001 |
Используется для указания, если виджет активирован. |
QStyle::State_HasEditFocus |
0x01000000 |
Используется для указания, имеет ли виджет в настоящее время фокус редактирования. |
QStyle::State_HasFocus |
0x00000100 |
Используется для указания, имеет ли виджет фокус. |
QStyle::State_Horizontal |
0x00000080 |
Используется для указания, выровнен ли виджет, например, по горизонтали, как панель инструментов. |
QStyle::State_KeyboardFocusChange |
0x00800000 |
Используется для указания, был ли фокус изменен с помощью клавиатуры, например, Tab, Backtab или сочетанием клавиш. |
QStyle::State_MouseOver |
0x00002000 |
Используется для указания, находится ли виджет под курсором мыши. |
QStyle::State_NoChange |
0x00000010 |
Используется для указания трехпозиционного флажка. |
QStyle::State_Off |
0x00000008 |
Используется для указания, если виджет не выбран. |
QStyle::State_On |
0x00000020 |
Используется для указания, если виджет выбран. |
QStyle::State_Raised |
0x00000002 |
Используется для указания, если кнопка поднята. |
QStyle::State_ReadOnly |
0x02000000 |
Используется для указания, если виджет только для чтения. |
QStyle::State_Selected |
0x00008000 |
Используется для указания, если виджет выбран. |
QStyle::State_Item |
0x00100000 |
Используется представлениями элементов для указания, если должна быть нарисована горизонтальная ветвь. |
QStyle::State_Open |
0x00040000 |
Используется представлениями элементов для указания, если ветвь дерева открыта. |
QStyle::State_Sibling |
0x00200000 |
Используется представлениями элементов для указания, если должна быть нарисована вертикальная линия (для родственных элементов). |
QStyle::State_Sunken |
0x00000004 |
Используется для указания, если виджет западает или нажат. |
QStyle::State_UpArrow |
0x00004000 |
Используется для указания, должен ли быть виден символ вверх на виджете. |
QStyle::State_Mini |
0x08000000 |
Используется для указания мини-стиля виджета или кнопки Mac. |
QStyle::State_Small |
0x04000000 |
Используется для указания малого стиля виджета или кнопки Mac. |
Тип State — это псевдоним для QFlags<StateFlag>. Он хранит комбинацию значений StateFlag с операцией ИЛИ.
См. также drawPrimitive().
enum QStyle::StyleHint
Это перечисление описывает доступные подсказки стиля. Подсказка стиля — это общая подсказка по внешнему виду и/или ощущению.
| Константа | Значение | Описание |
|---|---|---|
QStyle::SH_EtchDisabledText |
0 |
Текст в отключенном состоянии «выгравирован», как на Windows. |
QStyle::SH_DitherDisabledText |
1 |
Текст в отключенном состоянии затемнен, как на Motif. |
QStyle::SH_ScrollBar_ContextMenu |
62 |
Наличие контекстного меню в полосе прокрутки. |
QStyle::SH_ScrollBar_MiddleClickAbsolutePosition |
2 |
Логическое значение. Если истинно, средний клик на полосе прокрутки перемещает ползунок в указанную позицию. Если ложно, средний клик игнорируется. |
QStyle::SH_ScrollBar_LeftClickAbsolutePosition |
39 |
Логическое значение. Если истинно, левый клик на полосе прокрутки перемещает ползунок в указанную позицию. Если ложно, левый клик ведет себя соответствующим образом для каждого элемента управления. |
QStyle::SH_ScrollBar_ScrollWhenPointerLeavesControl |
3 |
Логическое значение. Если истинно, при нажатии на полосу прокрутки SubControl, удерживании кнопки мыши и перемещении указателя за пределы SubControl, прокрутка полосы продолжается. Если ложно, прокрутка останавливается, когда указатель покидает SubControl. |
QStyle::SH_ScrollBar_RollBetweenButtons |
63 |
Логическое значение. Если истинно, при нажатии на кнопку полосы прокрутки (SC_ScrollBarAddLine или SC_ScrollBarSubLine) и перетаскивании к противоположной кнопке (прокрутка) будет нажата новая кнопка, а старая отпущена. При ложном значении, исходная кнопка отпускается, и ничего не происходит (как при нажатии на обычную кнопку). |
QStyle::SH_TabBar_Alignment |
5 |
Выравнивание вкладок в QTabWidget. Возможные значения: Qt::AlignLeft, Qt::AlignCenter и Qt::AlignRight. |
QStyle::SH_Header_ArrowAlignment |
6 |
Положение индикатора сортировки в заголовках списков или таблиц. Возможные значения — значения Qt::Alignment (т. е. логическое ИЛИ комбинация флагов Qt::AlignmentFlag). |
QStyle::SH_Slider_SnapToValue |
7 |
Ползунки подстраиваются под значения во время перемещения, как на Windows. |
QStyle::SH_Slider_SloppyKeyEvents |
8 |
Обработка нажатий клавиш происходит нестрого, т. е. левый клик на вертикальном ползунке уменьшает значение на одну строку. |
QStyle::SH_ProgressDialog_CenterCancelButton |
9 |
Центрирование кнопки на диалогах прогресса, иначе выравнивание по правому краю. |
QStyle::SH_ProgressDialog_TextLabelAlignment |
10 |
Выравнивание текстовых меток на диалогах прогресса; Qt::AlignCenter на Windows, Qt::AlignVCenter в противном случае. |
QStyle::SH_PrintDialog_RightAlignButtons |
11 |
Кнопки выравниваются по правому краю в диалоге печати, как на Windows. |
QStyle::SH_MainWindow_SpaceBelowMenuBar |
12 |
Один или два пикселя между строкой меню и областью размещения, как на Windows. |
QStyle::SH_FontDialog_SelectAssociatedText |
13 |
Выделение текста в поле редактирования, при выборе элемента из списка или при получении фокуса полем редактирования, как на Windows. |
QStyle::SH_Menu_KeyboardSearch |
66 |
Ввод текста инициирует поиск соответствующих элементов в меню, в противном случае рассматривается только мнемоника. |
QStyle::SH_Menu_AllowActiveAndDisabled |
14 |
Разрешает активность отключенных пунктов меню. |
QStyle::SH_Menu_SpaceActivatesItem |
15 |
Нажатие клавиши пробела активирует пункт, как на Motif. |
QStyle::SH_Menu_SubMenuPopupDelay |
16 |
Время ожидания в миллисекундах перед открытием подменю (256 на Windows, 96 на Motif). |
QStyle::SH_Menu_Scrollable |
30 |
Поддержка прокрутки в всплывающих меню. |
QStyle::SH_Menu_SloppySubMenus |
33 |
Поддержка перемещения указателя мыши в подменю при пересечении других пунктов меню. Поддерживается на большинстве современных настольных платформ. |
QStyle::SH_Menu_SubMenuUniDirection |
106 |
С Qt 5.5. Если курсор должен перемещаться к подменю (как на macOS), или если курсор может перемещаться в любом направлении, пока не достигнет подменю до истечения времени ожидания. |
QStyle::SH_Menu_SubMenuUniDirectionFailCount |
107 |
С Qt 5.5. Когда определен SH_Menu_SubMenuUniDirection, этот перечисление определяет количество неудачных перемещений курсора перед отбрасыванием подменю, которое поддерживает движение в одном направлении. Это может быть использовано для управления «строгостью» алгоритма движения в одном направлении. |
QStyle::SH_Menu_SubMenuSloppySelectOtherActions |
108 |
С Qt 5.5. Должны ли быть выбраны другие пункты действий, когда курсор перемещается к подменю, поддерживающему движение в одном направлении? |
QStyle::SH_Menu_SubMenuSloppyCloseTimeout |
109 |
С Qt 5.5. Время ожидания для закрытия подменю, поддерживающего движение в одном направлении. |
QStyle::SH_Menu_SubMenuResetWhenReenteringParent |
110 |
С Qt 5.5. При переходе из дочернего подменю в родительское, должно ли состояние «движение в одном направлении» сбрасываться, эффективно закрывая дочернее подменю и делая активным текущее подменю? |
QStyle::SH_Menu_SubMenuDontStartSloppyOnLeave |
111 |
С Qt 5.5. Не запускать таймеры «движение в одном направлении», когда указатель мыши покидает подменю. |
QStyle::SH_ScrollView_FrameOnlyAroundContents |
17 |
Отображение рамки прокручиваемых областей только вокруг содержимого (как в Motif), или вокруг содержимого, полос прокрутки и угловых элементов (как в Windows). |
QStyle::SH_MenuBar_AltKeyNavigation |
18 |
Пункты меню можно переключать, нажав Alt и используя стрелки для выбора желаемого пункта. |
QStyle::SH_ComboBox_ListMouseTracking |
19 |
Отслеживание перемещения мыши в раскрывающихся списках раскрывающегося списка. |
QStyle::SH_Menu_MouseTracking |
20 |
Отслеживание перемещения мыши в всплывающих меню. |
QStyle::SH_MenuBar_MouseTracking |
21 |
Отслеживание перемещения мыши в строках меню. |
QStyle::SH_Menu_FillScreenWithScroll |
45 |
Всплывающие меню должны заполнять весь экран при прокрутке. |
QStyle::SH_Menu_SelectionWrap |
74 |
Всплывающие меню должны допускать циклическое выбор элементов, то есть при выборе последнего пункта выбирается первый. |
QStyle::SH_ItemView_ChangeHighlightOnFocus |
22 |
Отключение выделенных элементов при потере фокуса. |
QStyle::SH_Widget_ShareActivation |
23 |
Включение совместной активации с плавающими безадресными диалогами. |
QStyle::SH_TabBar_SelectMouseType |
4 |
Какой тип события мыши должен вызывать выбор вкладки. |
QStyle::SH_ListViewExpand_SelectMouseType |
40 |
Какой тип события мыши должен вызывать выбор расширения списка. |
QStyle::SH_TabBar_PreferNoArrows |
38 |
Должна ли панель вкладок предлагать размер, чтобы избежать появления стрелок прокрутки. |
QStyle::SH_ComboBox_Popup |
25 |
Разрешение использования всплывающих меню в качестве выпадающего списка раскрывающегося списка раскрывающегося списка. |
QStyle::SH_Workspace_FillSpaceOnMaximize |
24 |
Рабочая область должна максимизировать область клиента. |
QStyle::SH_TitleBar_NoBorder |
26 |
Строка заголовка не имеет границы. |
QStyle::SH_ScrollBar_StopMouseOverSlider |
SH_Slider_StopMouseOverSlider |
Устарело. Используйте SH_Slider_StopMouseOverSlider вместо него. |
QStyle::SH_Slider_StopMouseOverSlider |
27 |
Остановка автоматического повторения, когда ползунок достигает положения курсора. |
QStyle::SH_BlinkCursorWhenTextSelected |
28 |
Мигание курсора при выделении текста. |
QStyle::SH_RichText_FullWidthSelection |
29 |
Влияет ли выделение richtext на всю ширину документа. |
QStyle::SH_GroupBox_TextLabelVerticalAlignment |
31 |
Как вертикально выравнивать текстовую метку групповой рамки. |
QStyle::SH_GroupBox_TextLabelColor |
32 |
Как рисовать текстовую метку групповой рамки. |
QStyle::SH_DialogButtons_DefaultButton |
36 |
Какая кнопка получает состояние по умолчанию в виджете кнопок диалога. |
QStyle::SH_ToolBox_SelectedPageTitleBold |
37 |
Жирность выделенного заголовка страницы в QToolBox. |
QStyle::SH_LineEdit_PasswordCharacter |
35 |
Символ Юникода, используемый для паролей. |
QStyle::SH_LineEdit_PasswordMaskDelay |
104 |
Определяет задержку перед маскировкой видимого символа символом пароля в миллисекундах. Эта перечисление добавлена в Qt 5.4. |
QStyle::SH_Table_GridLineColor |
34 |
Значение RGB сетки для таблицы. |
QStyle::SH_UnderlineShortcut |
41 |
Подчеркивать ли сочетания клавиш. |
QStyle::SH_SpellCheckUnderlineStyle |
72 |
Устаревшее. Используйте подсказку SpellCheckUnderlineStyle в QPlatformTheme вместо этого. |
QStyle::SH_SpinBox_AnimateButton |
42 |
Анимировать щелчок при нажатии вверх или вниз в спинбоксе. |
QStyle::SH_SpinBox_KeyPressAutoRepeatRate |
43 |
Интервал автоповтора для нажатий клавиш в спинбоксе. |
QStyle::SH_SpinBox_ClickAutoRepeatRate |
44 |
Интервал автоповтора для щелчков мышью в спинбоксе. |
QStyle::SH_SpinBox_ClickAutoRepeatThreshold |
84 |
Пороговое значение автоповтора для щелчков мышью в спинбоксе. |
QStyle::SH_ToolTipLabel_Opacity |
46 |
Целое число, указывающее непрозрачность метки подсказки; 0 — полностью прозрачная, 255 — полностью непрозрачная. |
QStyle::SH_DrawMenuBarSeparator |
47 |
Указывает, рисует ли меню-строка разделители. |
QStyle::SH_TitleBar_ModifyNotification |
48 |
Указывает, должен ли заголовок отображать '*' для изменённых окон. |
QStyle::SH_Button_FocusPolicy |
49 |
Политика фокуса по умолчанию для кнопок. |
QStyle::SH_CustomBase |
0xf0000000 |
Базовое значение для пользовательских подсказок стиля. Пользовательские значения должны быть больше этого значения. |
QStyle::SH_MessageBox_UseBorderForButtonSpacing |
50 |
Логическое значение, указывающее, использовать ли границу кнопок (вычисляется как половина высоты кнопки) для отступа кнопки в окне сообщения. |
QStyle::SH_MessageBox_CenterButtons |
73 |
Логическое значение, указывающее, должны ли кнопки в окне сообщения центрироваться (см. QDialogButtonBox::setCentered()). |
QStyle::SH_MessageBox_TextInteractionFlags |
70 |
Логическое значение, указывающее, могут ли текст в окне сообщения разрешать взаимодействия пользователя (например, выбор) или нет. |
QStyle::SH_TitleBar_AutoRaise |
51 |
Логическое значение, указывающее, должны ли элементы управления на панели заголовка обновляться при наведении курсора. |
QStyle::SH_ToolButton_PopupDelay |
52 |
Целое число, указывающее задержку всплытия в миллисекундах для меню, прикреплённых к кнопкам инструментов. |
QStyle::SH_FocusFrame_Mask |
53 |
Маска рамки фокуса. |
QStyle::SH_RubberBand_Mask |
54 |
Маска резинового прямоугольника. |
QStyle::SH_WindowFrame_Mask |
55 |
Маска рамки окна. |
QStyle::SH_SpinControls_DisableOnBounds |
56 |
Определяет, будут ли элементы управления спинбоксом отображаться как отключённые при достижении границ диапазона спинбокса. |
QStyle::SH_Dial_BackgroundRole |
57 |
Определяет предпочтительную роль фона стиля (как QPalette::ColorRole) для виджета циферблата. |
QStyle::SH_ComboBox_LayoutDirection |
58 |
Направление макета для комбинации. По умолчанию оно должно совпадать с указанным в переменной QStyleOption::direction. |
QStyle::SH_ItemView_EllipsisLocation |
59 |
Место добавления многоточия для текста элемента, который слишком длинный, чтобы поместиться в элементе просмотра. |
QStyle::SH_ItemView_ShowDecorationSelected |
60 |
При выделении элемента в представлении элементов также подсвечивать ветвь или другие декорации. |
QStyle::SH_ItemView_ActivateItemOnSingleClick |
61 |
Вызывать сигнал activated, когда пользователь один раз щелкает по элементу в представлении элементов. В противном случае сигнал вызывается при двойном щелчке по элементу. |
QStyle::SH_Slider_AbsoluteSetButtons |
64 |
Какие кнопки мыши устанавливают значение ползунка в позицию, по которой щелкнули. |
QStyle::SH_Slider_PageSetButtons |
65 |
Какие кнопки мыши вызывают скроллирование значения ползунка. |
QStyle::SH_TabBar_ElideMode |
67 |
Стиль обрезки по умолчанию для панели вкладок. |
QStyle::SH_DialogButtonLayout |
68 |
Управление расположением кнопок в QDialogButtonBox, возвращает перечисление QDialogButtonBox::ButtonLayout. |
QStyle::SH_WizardStyle |
79 |
Управление внешним видом и ощущением QWizard. Возвращает перечисление QWizard::WizardStyle. |
QStyle::SH_FormLayoutWrapPolicy |
86 |
Предлагает значение по умолчанию для того, как строки обёртываются в QFormLayout. Возвращает перечисление QFormLayout::RowWrapPolicy. |
QStyle::SH_FormLayoutFieldGrowthPolicy |
89 |
Предлагает значение по умолчанию для того, как поля могут увеличиваться в QFormLayout. Возвращает перечисление QFormLayout::FieldGrowthPolicy. |
QStyle::SH_FormLayoutFormAlignment |
90 |
Предлагает значение по умолчанию для того, как QFormLayout выравнивает содержимое в доступном пространстве. Возвращает перечисление Qt::Alignment. |
QStyle::SH_FormLayoutLabelAlignment |
91 |
Предлагает значение по умолчанию для того, как QFormLayout выравнивает метки в доступном пространстве. Возвращает перечисление Qt::Alignment. |
QStyle::SH_ItemView_ArrowKeysNavigateIntoChildren |
80 |
Определяет, будет ли представление дерева выбирать первый дочерний элемент при его раскрытии и нажатии правой стрелки. |
QStyle::SH_ComboBox_PopupFrameStyle |
69 |
Стиль рамки, используемый при рисовании всплывающего меню combobox. |
QStyle::SH_DialogButtonBox_ButtonsHaveIcons |
71 |
Указывает, будут ли StandardButtons в QDialogButtonBox иметь значки или нет. |
QStyle::SH_ItemView_MovementWithoutUpdatingSelection |
75 |
Представление элементов может указать текущий элемент без изменения выделения. |
QStyle::SH_ToolTip_Mask |
76 |
Маска всплывающей подсказки. |
QStyle::SH_FocusFrame_AboveWidget |
77 |
Рамка фокуса расположена поверх виджета, на котором она «фокусируется». |
QStyle::SH_TextControl_FocusIndicatorTextCharFormat |
78 |
Указывает формат текста, используемый для выделения фокусированных якорей в документах с форматированным текстом, отображаемых, например, в QTextBrowser. Формат должен быть QTextCharFormat, возвращённым в варианте QStyleHintReturnVariant. Для обводки используется свойство QTextFormat::OutlinePen, а для фона выделенной области — QTextFormat::BackgroundBrush. |
QStyle::SH_Menu_FlashTriggeredItem |
82 |
Элемент, запущенный вспышкой. |
QStyle::SH_Menu_FadeOutOnHide |
83 |
Анимация плавного исчезновения меню вместо немедленного скрытия. |
QStyle::SH_TabWidget_DefaultTabPosition |
87 |
Позиция панели вкладок по умолчанию в виджете вкладок. |
QStyle::SH_ToolBar_Movable |
88 |
Определяет, может ли панель инструментов перемещаться по умолчанию. |
QStyle::SH_ItemView_PaintAlternatingRowColorsForEmptyArea |
85 |
Определяет, рисует ли QTreeView чередующиеся цвета строк для области, не содержащей элементов. |
QStyle::SH_Menu_Mask |
81 |
Маска всплывающего меню. |
QStyle::SH_ItemView_DrawDelegateFrame |
92 |
Определяет, нужна ли рамка для виджета делегата. |
QStyle::SH_TabBar_CloseButtonPosition |
93 |
Определяет позицию кнопки закрытия на вкладке в панели вкладок. |
QStyle::SH_DockWidget_ButtonsHaveFrame |
94 |
Определяет, должны ли кнопки виджетов-доков иметь рамки. Значение по умолчанию — true. |
QStyle::SH_ToolButtonStyle |
95 |
Определяет стандартный системный стиль для кнопок инструментов, использующих Qt::ToolButtonFollowStyle. |
QStyle::SH_RequestSoftwareInputPanel |
96 |
Определяет, когда виджеты ввода должны запрашивать программную клавиатуру. Возвращает перечисление типа QStyle::RequestSoftwareInputPanel. |
QStyle::SH_ScrollBar_Transient |
97 |
Определяет, поддерживает ли стиль временные полосы прокрутки. Временные полосы прокрутки появляются при прокрутке содержимого и исчезают, когда они больше не нужны. |
QStyle::SH_Menu_SupportsSections |
98 |
Определяет, отображает ли стиль разделы в меню или рассматривает их как обычные разделители. Разделы — это разделители с подсказками текста и значка. |
QStyle::SH_ToolTip_WakeUpDelay |
99 |
Определяет задержку (в миллисекундах) перед отображением подсказки. |
QStyle::SH_ToolTip_FallAsleepDelay |
100 |
Определяет задержку (в миллисекундах) перед тем, как потребуется новое время пробуждения при отображении подсказки (обратите внимание: показана, а не скрыта). Когда новое пробуждение не требуется, запрашиваемая пользователем подсказка будет показана почти мгновенно. |
QStyle::SH_Widget_Animate |
101 |
Устарело. Используйте SH_Widget_Animation_Duration вместо этого. |
QStyle::SH_Splitter_OpaqueResize |
102 |
Определяет, масштабируются ли виджеты динамически (непрозрачно) во время интерактивного перемещения разделителя. Это значение перечисления было введено в Qt 5.2. |
QStyle::SH_TabBar_ChangeCurrentDelay |
105 |
Определяет задержку (в миллисекундах) перед изменением текущей вкладки во время перетаскивания по панели вкладок. Это значение перечисления было введено в Qt 5.4 |
QStyle::SH_ItemView_ScrollMode |
112 |
Режим прокрутки по вертикали и горизонтали по умолчанию, как указано стилем. Можно переопределить с помощью QAbstractItemView::setVerticalScrollMode() и QAbstractItemView::setHorizontalScrollMode(). Это значение перечисления было введено в Qt 5.7. |
QStyle::SH_TitleBar_ShowToolTipsOnButtons |
113 |
Определяет, отображаются ли всплывающие подсказки на кнопках панели заголовка окна. Например, стиль Mac устанавливает это значение в false. Это значение перечисления было введено в Qt 5.10. |
QStyle::SH_Widget_Animation_Duration |
114 |
Определяет продолжительность анимации (в мс). Значение, равное нулю, означает отключение анимаций. Это значение перечисления было введено в Qt 5.10. |
QStyle::SH_ComboBox_AllowWheelScrolling |
115 |
Определяет, можно ли использовать колесо мыши для прокрутки внутри QComboBox. По умолчанию включено во всех стилях, кроме стиля Mac. Это значение перечисления было введено в Qt 5.10. |
QStyle::SH_SpinBox_ButtonsInsideFrame |
116 |
Определяет, находятся ли кнопки поля ввода внутри рамки поля редактирования. Это значение перечисления было введено в Qt 5.11. |
QStyle::SH_SpinBox_StepModifier |
117 |
Определяет, какая Qt::KeyboardModifier увеличивает скорость шага QAbstractSpinBox. Возможные значения: Qt::NoModifier, Qt::ControlModifier (по умолчанию) или Qt::ShiftModifier. Qt::NoModifier отключает эту функцию. Это значение перечисления было введено в Qt 5.12. |
См. также styleHint().
enum QStyle::SubControlflags QStyle::SubControls
Это перечисление описывает доступные подэлементы управления. Подэлемент управления — это элемент управления внутри сложного элемента управления (ComplexControl).
| Постоянная | Значение | Описание |
|---|---|---|
QStyle::SC_None |
0x00000000 |
Специальное значение, которое не совпадает ни с одним другим элементом управления. |
QStyle::SC_ScrollBarAddLine |
0x00000001 |
Кнопка увеличения полосы прокрутки (т.е. стрелка вниз/вправо); см. также QScrollBar. |
QStyle::SC_ScrollBarSubLine |
0x00000002 |
Кнопка уменьшения полосы прокрутки (т.е. стрелка вверх/влево). |
QStyle::SC_ScrollBarAddPage |
0x00000004 |
Кнопка перехода на следующую страницу полосы прокрутки (т.е. Page Down). |
QStyle::SC_ScrollBarSubPage |
0x00000008 |
Кнопка перехода на предыдущую страницу полосы прокрутки (т.е. Page Up). |
QStyle::SC_ScrollBarFirst |
0x00000010 |
Первая строка полосы прокрутки (т.е. Home). |
QStyle::SC_ScrollBarLast |
0x00000020 |
Последняя строка полосы прокрутки (т.е. End). |
QStyle::SC_ScrollBarSlider |
0x00000040 |
Движок полосы прокрутки. |
QStyle::SC_ScrollBarGroove |
0x00000080 |
Специальный элемент управления, содержащий область, в которой может перемещаться движок. |
QStyle::SC_SpinBoxUp |
0x00000001 |
Кнопка увеличения/увеличения значений спин-виджета; см. также QSpinBox. |
QStyle::SC_SpinBoxDown |
0x00000002 |
Кнопка уменьшения/уменьшения значений спин-виджета. |
QStyle::SC_SpinBoxFrame |
0x00000004 |
Рамка спин-виджета. |
QStyle::SC_SpinBoxEditField |
0x00000008 |
Поле ввода спин-виджета. |
QStyle::SC_ComboBoxEditField |
0x00000002 |
Поле ввода комбинации; см. также QComboBox. |
QStyle::SC_ComboBoxArrow |
0x00000004 |
Кнопка стрелки комбинации. |
QStyle::SC_ComboBoxFrame |
0x00000001 |
Рамка комбинации. |
QStyle::SC_ComboBoxListBoxPopup |
0x00000008 |
Прямоугольник отсчета для всплывающего списка комбинации. Используется для расчета положения всплывающего списка. |
QStyle::SC_SliderGroove |
0x00000001 |
Специальный элемент управления, содержащий область, в которой может перемещаться движок. |
QStyle::SC_SliderHandle |
0x00000002 |
Движок ползунка. |
QStyle::SC_SliderTickmarks |
0x00000004 |
Отметки ползунка. |
QStyle::SC_ToolButton |
0x00000001 |
Кнопка инструмента (см. также QToolButton). |
QStyle::SC_ToolButtonMenu |
0x00000002 |
Элемент управления для открытия всплывающего меню в кнопке инструмента. |
QStyle::SC_TitleBarSysMenu |
0x00000001 |
Кнопка системного меню (т.е. восстановить, закрыть и т.д.). |
QStyle::SC_TitleBarMinButton |
0x00000002 |
Кнопка сворачивания. |
QStyle::SC_TitleBarMaxButton |
0x00000004 |
Кнопка разворачивания. |
QStyle::SC_TitleBarCloseButton |
0x00000008 |
Кнопка закрытия. |
QStyle::SC_TitleBarLabel |
0x00000100 |
Метка заголовка окна. |
QStyle::SC_TitleBarNormalButton |
0x00000010 |
Обычная (восстановленная) кнопка. |
QStyle::SC_TitleBarShadeButton |
0x00000020 |
Кнопка затемнения. |
QStyle::SC_TitleBarUnshadeButton |
0x00000040 |
Кнопка отмены затемнения. |
QStyle::SC_TitleBarContextHelpButton |
0x00000080 |
Кнопка справки по контексту. |
QStyle::SC_DialHandle |
0x00000002 |
Маркер циферблата (т.е. то, что вы используете для управления циферблатом). |
QStyle::SC_DialGroove |
0x00000001 |
Паз циферблата. |
QStyle::SC_DialTickmarks |
0x00000004 |
Деления циферблата. |
QStyle::SC_GroupBoxFrame |
0x00000008 |
Рамка группы. |
QStyle::SC_GroupBoxLabel |
0x00000002 |
Заголовок группы. |
QStyle::SC_GroupBoxCheckBox |
0x00000001 |
Необязательная галочка в группе. |
QStyle::SC_GroupBoxContents |
0x00000004 |
Содержание группы. |
QStyle::SC_MdiNormalButton |
0x00000002 |
Обычная кнопка для подокна MDI в строке меню. |
QStyle::SC_MdiMinButton |
0x00000001 |
Кнопка сворачивания для подокна MDI в строке меню. |
QStyle::SC_MdiCloseButton |
0x00000004 |
Кнопка закрытия для подокна MDI в строке меню. |
QStyle::SC_All |
0xffffffff |
Специальное значение, которое соответствует всем элементам управления. |
Тип SubControls — это typedef для QFlags<SubControl>. Он хранит логическое ИЛИ сочетание значений SubControl.
См. также ComplexControl.
enum QStyle::SubElement
Этот перечисление представляет собой подобласть виджета. Реализации стиля используют эти области для отрисовки различных частей виджета.
| Постоянная | Значение | Описание |
|---|---|---|
QStyle::SE_PushButtonContents |
0 |
Область, содержащая метку (иконку с текстом или пиксельным изображением). |
QStyle::SE_PushButtonFocusRect |
1 |
Область для прямоугольника фокуса (обычно больше, чем область содержимого). |
QStyle::SE_PushButtonLayoutItem |
38 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_CheckBoxIndicator |
2 |
Область для индикатора состояния (например, галочки). |
QStyle::SE_CheckBoxContents |
3 |
Область для метки (текста или пиксельного изображения). |
QStyle::SE_CheckBoxFocusRect |
4 |
Область для индикатора фокуса. |
QStyle::SE_CheckBoxClickRect |
5 |
Нажимаемая область, по умолчанию SE_CheckBoxFocusRect. |
QStyle::SE_CheckBoxLayoutItem |
32 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_DateTimeEditLayoutItem |
34 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_RadioButtonIndicator |
6 |
Область для индикатора состояния. |
QStyle::SE_RadioButtonContents |
7 |
Область для метки. |
QStyle::SE_RadioButtonFocusRect |
8 |
Область для индикатора фокуса. |
QStyle::SE_RadioButtonClickRect |
9 |
Нажимаемая область, по умолчанию SE_RadioButtonFocusRect. |
QStyle::SE_RadioButtonLayoutItem |
39 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_ComboBoxFocusRect |
10 |
Область для индикатора фокуса. |
QStyle::SE_SliderFocusRect |
11 |
Область для индикатора фокуса. |
QStyle::SE_SliderLayoutItem |
40 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_SpinBoxLayoutItem |
41 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_ProgressBarGroove |
12 |
Область для желоба. |
QStyle::SE_ProgressBarContents |
13 |
Область для индикатора прогресса. |
QStyle::SE_ProgressBarLabel |
14 |
Область для текстовой метки. |
QStyle::SE_ProgressBarLayoutItem |
37 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_FrameContents |
27 |
Область для содержимого фрейма. |
QStyle::SE_ShapedFrameContents |
52 |
Область для содержимого фрейма, использующего форму в QStyleOptionFrame; см. QFrame |
QStyle::SE_FrameLayoutItem |
43 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_HeaderArrow |
17 |
Область для индикатора сортировки для заголовка. |
QStyle::SE_HeaderLabel |
16 |
Область для метки в заголовке. |
QStyle::SE_LabelLayoutItem |
36 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_LineEditContents |
26 |
Область для содержимого поля ввода. |
QStyle::SE_TabWidgetLeftCorner |
21 |
Область для виджета левого угла в виджете вкладок. |
QStyle::SE_TabWidgetRightCorner |
22 |
Область для виджета правого угла в виджете вкладок. |
QStyle::SE_TabWidgetTabBar |
18 |
Область для виджета панели вкладок в виджете вкладок. |
QStyle::SE_TabWidgetTabContents |
20 |
Область для содержимого виджета вкладок. |
QStyle::SE_TabWidgetTabPane |
19 |
Область для панели виджета вкладок. |
QStyle::SE_TabWidgetLayoutItem |
45 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_ToolBoxTabContents |
15 |
Область для значка и метки вкладки инструментальной панели. |
QStyle::SE_ToolButtonLayoutItem |
42 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_ItemViewItemCheckIndicator |
SE_ViewItemCheckIndicator |
Область для отметки (галочки) элемента просмотра. |
QStyle::SE_TabBarTearIndicator |
24 |
Устарело. Используйте SE_TabBarTearIndicatorLeft вместо этого. |
QStyle::SE_TabBarTearIndicatorLeft |
SE_TabBarTearIndicator |
Область для индикатора разрыва с левой стороны панели вкладок со стрелками прокрутки. |
QStyle::SE_TabBarTearIndicatorRight |
56 |
Область для индикатора разрыва с правой стороны панели вкладок со стрелками прокрутки. |
QStyle::SE_TabBarScrollLeftButton |
54 |
Область для кнопки прокрутки влево на панели вкладок с кнопками прокрутки. |
QStyle::SE_TabBarScrollRightButton |
55 |
Область для кнопки прокрутки вправо на панели вкладок с кнопками прокрутки. |
QStyle::SE_TreeViewDisclosureItem |
25 |
Область для фактического раскрывающегося элемента в ветви дерева. |
QStyle::SE_DialogButtonBoxLayoutItem |
35 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_GroupBoxLayoutItem |
44 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_CustomBase |
0xf0000000 |
Базовое значение для пользовательских подэлементов. Пользовательские значения должны быть больше этого значения. |
QStyle::SE_DockWidgetFloatButton |
29 |
Плавающая кнопка виджета панели инструментов. |
QStyle::SE_DockWidgetTitleBarText |
30 |
Границы текста заголовка виджетов панели инструментов. |
QStyle::SE_DockWidgetCloseButton |
28 |
Кнопка закрытия виджета панели инструментов. |
QStyle::SE_DockWidgetIcon |
31 |
Иконка виджета панели инструментов. |
QStyle::SE_ComboBoxLayoutItem |
33 |
Область, учитываемая для расположения родительского макета. |
QStyle::SE_ItemViewItemDecoration |
46 |
Область для декорации (иконки) элемента просмотра. |
QStyle::SE_ItemViewItemText |
47 |
Область для текста элемента просмотра. |
QStyle::SE_ItemViewItemFocusRect |
48 |
Область для прямоугольника фокуса элемента просмотра. |
QStyle::SE_TabBarTabLeftButton |
49 |
Область для виджета слева от вкладки на панели вкладок. |
QStyle::SE_TabBarTabRightButton |
50 |
Область для виджета справа от вкладки на панели вкладок. |
QStyle::SE_TabBarTabText |
51 |
Область для текста на вкладке в панели вкладок. |
QStyle::SE_ToolBarHandle |
53 |
Область для ручки панели инструментов. |
См. также subElementRect().
Документация по функциям-членам
QStyle::QStyle()
Создаёт объект стиля.
[virtual] QStyle::~QStyle()
Удаляет объект стиля.
[static] QRect QStyle::alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle)
Возвращает новый прямоугольник заданного размера size, выровненный по заданному прямоугольнику rectangle в соответствии с указанным выравниванием alignment и направлением direction.
int QStyle::combinedLayoutSpacing(QSizePolicy::ControlTypes controls1, QSizePolicy::ControlTypes controls2, Qt::Orientation orientation, QStyleOption *option = nullptr, QWidget *widget = nullptr) const
Возвращает интервал, который должен использоваться между controls1 и controls2 в макете. orientation определяет, расположены ли элементы управления бок о бок или друг под другом. Параметр option может использоваться для передачи дополнительной информации о родительском виджете. Параметр widget является необязательным и также может использоваться, если option равен 0.
controls1 и controls2 — это результат побитового объединения одного или нескольких типов элементов управления.
Эта функция вызывается системой макетов. Она используется только в том случае, если PM_LayoutHorizontalSpacing или PM_LayoutVerticalSpacing возвращают отрицательное значение.
Функция была введена в Qt 4.3.
См. также layoutSpacing().
[pure virtual] void QStyle::drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const
Рисует указанный элемент управления control с помощью предоставленного объекта рисования painter со стилем, заданным параметром option.
Аргумент widget является необязательным и может использоваться в качестве вспомогательного средства при рисовании элемента управления.
Параметр option — указатель на объект QStyleOptionComplex, который можно привести к соответствующему подклассу с помощью функции qstyleoption_cast(). Обратите внимание, что член rect указанного параметра option должен быть в логических координатах. Реализации этой функции должны использовать visualRect(), чтобы преобразовать логические координаты в экранные перед вызовом функции drawPrimitive() или drawControl().
В таблице ниже перечислены элементы управления сложной структуры и соответствующие им подклассы стиля. Элементы стиля содержат все параметры, необходимые для рисования элементов управления, включая QStyleOption::state, который содержит флаги стиля, используемые при рисовании. В таблице также описано, какие флаги устанавливаются при приведении указанного параметра option к соответствующему подклассу.
| Элемент управления | Подкласс QStyleOptionComplex | Флаг стиля | Примечание |
|---|---|---|---|
| CC_SpinBox | QStyleOptionSpinBox | State_Enabled | Установлен, если спин-бокс включен. |
| State_HasFocus | Установлен, если спин-бокс имеет фокус. | ||
| CC_ComboBox | QStyleOptionComboBox | State_Enabled | Установлен, если раскрывающийся список включен. |
| State_HasFocus | Установлен, если раскрывающийся список имеет фокус. | ||
| CC_ScrollBar | QStyleOptionSlider | State_Enabled | Установлен, если полоса прокрутки включена. |
| State_HasFocus | Установлен, если полоса прокрутки имеет фокус. | ||
| CC_Slider | QStyleOptionSlider | State_Enabled | Установлен, если ползунок включен. |
| State_HasFocus | Установлен, если ползунок имеет фокус. | ||
| CC_Dial | QStyleOptionSlider | State_Enabled | Установлен, если регулятор включен. |
| State_HasFocus | Установлен, если регулятор имеет фокус. | ||
| CC_ToolButton | QStyleOptionToolButton | State_Enabled | Установлен, если кнопка инструмента включена. |
| State_HasFocus | Установлен, если кнопка инструмента имеет фокус. | ||
| State_DownArrow | Установлен, если кнопка инструмента нажата (т.е., нажата кнопка мыши или клавиша пробела). | ||
| State_On | Установлен, если кнопка инструмента — переключатель и переключена. | ||
| State_AutoRaise | Установлен, если для кнопки инструмента включена функция автоматического подъема. | ||
| State_Raised | Установлен, если кнопка не нажата, не включена и не содержит курсор мыши, когда функция автоматического подъема включена. | ||
| CC_TitleBar | QStyleOptionTitleBar | State_Enabled | Установлен, если строка заголовка включена. |
См. также drawPrimitive() и drawControl().
[pure virtual] void QStyle::drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const
Рисует указанный элемент element с помощью предоставленного объекта рисования painter со стилем, заданным параметром option.
Аргумент widget является необязательным и может использоваться в качестве вспомогательного средства при рисовании элемента управления. Параметр option — указатель на объект QStyleOption, который можно привести к соответствующему подклассу с помощью функции qstyleoption_cast().
В таблице ниже перечислены элементы управления и соответствующие им подклассы стиля. Элементы стиля содержат все параметры, необходимые для рисования элементов управления, включая QStyleOption::state, который содержит флаги стиля, используемые при рисовании. В таблице также описано, какие флаги устанавливаются при приведении указанного параметра option к соответствующему подклассу.
Примечание: если элемент управления не указан в этом списке, это означает, что он использует обычный объект QStyleOption.
| Элемент управления | Подкласс QStyleOption | Флаг стиля | Примечание |
|---|---|---|---|
| CE_MenuItem, CE_MenuBarItem | QStyleOptionMenuItem | State_Selected | Элемент меню в данный момент выбран. |
| State_Enabled | Элемент включён. | ||
| State_DownArrow | Указывает, что необходимо нарисовать стрелку вниз для прокрутки. | ||
| State_UpArrow | Указывает, что необходимо нарисовать стрелку вверх для прокрутки. | ||
| State_HasFocus | Устанавливается, если у строки меню фокус ввода. | ||
| CE_PushButton, CE_PushButtonBevel, CE_PushButtonLabel | QStyleOptionButton | State_Enabled | Устанавливается, если кнопка включена. |
| State_HasFocus | Устанавливается, если кнопка имеет фокус ввода. | ||
| State_Raised | Устанавливается, если кнопка не нажата, не включена и не плоская. | ||
| State_On | Устанавливается, если кнопка — переключатель и включена. | ||
| State_Sunken | Устанавливается, если кнопка нажата (например, нажата кнопка мыши или клавиша пробела). | ||
| CE_RadioButton, CE_RadioButtonLabel, CE_CheckBox, CE_CheckBoxLabel | QStyleOptionButton | State_Enabled | Устанавливается, если кнопка включена. |
| State_HasFocus | Устанавливается, если кнопка имеет фокус ввода. | ||
| State_On | Устанавливается, если кнопка выбрана. | ||
| State_Off | Устанавливается, если кнопка не выбрана. | ||
| State_NoChange | Устанавливается, если кнопка находится в состоянии «Без изменений». | ||
| State_Sunken | Устанавливается, если кнопка нажата (например, нажата кнопка мыши или клавиша пробела). | ||
| CE_ProgressBarContents, CE_ProgressBarLabel, CE_ProgressBarGroove | QStyleOptionProgressBar | State_Enabled | Устанавливается, если полоса прогресса включена. |
| State_HasFocus | Устанавливается, если полоса прогресса имеет фокус ввода. | ||
| CE_Header, CE_HeaderSection, CE_HeaderLabel | QStyleOptionHeader | ||
| CE_TabBarTab, CE_TabBarTabShape, CE_TabBarTabLabel | QStyleOptionTab | State_Enabled | Устанавливается, если вкладка включена. |
| State_Selected | Вкладка является текущей выбранной вкладкой. | ||
| State_HasFocus | Устанавливается, если у вкладки фокус ввода. | ||
| CE_ToolButtonLabel | QStyleOptionToolButton | State_Enabled | Устанавливается, если кнопка инструмента включена. |
| State_HasFocus | Устанавливается, если кнопка инструмента имеет фокус ввода. | ||
| State_Sunken | Устанавливается, если кнопка инструмента нажата (например, нажата кнопка мыши или клавиша пробела). | ||
| State_On | Устанавливается, если кнопка инструмента — переключатель и включена. | ||
| State_AutoRaise | Устанавливается, если для кнопки инструмента включен автоподъем. | ||
| State_MouseOver | Устанавливается, если указатель мыши находится над кнопкой инструмента. | ||
| State_Raised | Устанавливается, если кнопка не нажата и не включена. | ||
| CE_ToolBoxTab | QStyleOptionToolBox | State_Selected | Вкладка является текущей выбранной вкладкой. |
| CE_HeaderSection | QStyleOptionHeader | State_Sunken | Указывает, что секция нажата. |
| State_UpArrow | Указывает, что индикатор сортировки должен быть направлен вверх. | ||
| State_DownArrow | Указывает, что индикатор сортировки должен быть направлен вниз. |
См. также drawPrimitive() и drawComplexControl().
[virtual] void QStyle::drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const
Отображает заданный pixmap в указанном rectangle в соответствии с заданным alignment с помощью предоставленного painter.
См. также drawItemText().
[virtual] void QStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const
Отображает заданный text в указанном rectangle с помощью предоставленного painter и palette.
Текст отображается с помощью пера painter и выравнивается и обрезается в соответствии с заданным alignment. Если указан явный textRole, текст отображается с использованием цвета palette для данного роли. Параметр enabled указывает, включен ли элемент; при переопределении этой функции параметр enabled должен влиять на способ отображения элемента.
См. также Qt::Alignment и drawItemPixmap().
[pure virtual] void QStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const
Отображает указанный примитивный element с помощью предоставленного painter, используя параметры стиля, указанные в option.
Аргумент widget необязателен и может содержать виджет, который может помочь при отрисовке примитивного элемента.
В таблице ниже перечислены примитивные элементы и соответствующие подклассы стиля опций. Стиль опций содержит все параметры, необходимые для отрисовки элементов, включая QStyleOption::state, который содержит флаги стиля, используемые при отрисовке. Таблица также описывает, какие флаги устанавливаются при приведении заданного option к соответствующему подклассу.
Обратите внимание, что если примитивный элемент не указан здесь, это значит, что он использует обычный объект QStyleOption.
| Примитивный элемент | QStyleOption Подкласс | Флаг стиля | Примечание |
|---|---|---|---|
| PE_FrameFocusRect | QStyleOptionFocusRect | State_FocusAtBorder | Определяет, находится ли фокус на границе или внутри виджета. |
| PE_IndicatorCheckBox | QStyleOptionButton | State_NoChange | Указывает на "трёхсостояниевый" флажок. |
| State_On | Указывает, что индикатор выбран. | ||
| PE_IndicatorRadioButton | QStyleOptionButton | State_On | Указывает, что радиокнопка выбрана. |
| State_NoChange | Указывает на "трёхсостояниевый" элемент управления. | ||
| State_Enabled | Указывает, что элемент управления активен. | ||
| PE_IndicatorBranch | QStyleOption | State_Children | Указывает, что должна быть нарисована область для разворачивания дерева, чтобы показать дочерние элементы. |
| State_Item | Указывает, что должна быть нарисована горизонтальная ветвь (для отображения дочернего элемента). | ||
| State_Open | Указывает, что ветвь дерева развернута. | ||
| State_Sibling | Указывает, что должна быть нарисована вертикальная линия (для отображения элемента-близнеца). | ||
| PE_IndicatorHeaderArrow | QStyleOptionHeader | State_UpArrow | Указывает, что стрелка должна быть нарисована вверх; в противном случае она должна быть вниз. |
| PE_FrameGroupBox, PE_Frame, PE_FrameLineEdit, PE_FrameMenu, PE_FrameDockWidget, PE_FrameWindow | QStyleOptionFrame | State_Sunken | Указывает, что рамка должна быть утоплена. |
| PE_IndicatorToolBarHandle | QStyleOption | State_Horizontal | Указывает, что ручка окна горизонтальная, а не вертикальная. |
| PE_IndicatorSpinPlus, PE_IndicatorSpinMinus, PE_IndicatorSpinUp, PE_IndicatorSpinDown, | QStyleOptionSpinBox | State_Sunken | Указывает, что кнопка нажата. |
| PE_PanelButtonCommand | QStyleOptionButton | State_Enabled | Устанавливается, если кнопка активна. |
| State_HasFocus | Устанавливается, если кнопка имеет фокус ввода. | ||
| State_Raised | Устанавливается, если кнопка не нажата, не выбрана и не плоская. | ||
| State_On | Устанавливается, если кнопка — переключатель и включена. | ||
| State_Sunken | Устанавливается, если кнопка нажата (т.е., нажата кнопка мыши или клавиша пробела на кнопке). |
См. также drawComplexControl() и drawControl().
[pure virtual] QPixmap QStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const
Возвращает копию заданной pixmap, стилизованной в соответствии с заданным iconMode и учитывающей палитру, указанную в option.
Параметр option может передавать дополнительную информацию, но он должен содержать палитру.
Обратите внимание, что не все pixmap будут соответствовать, в этом случае возвращаемая pixmap будет простой копией.
См. также QIcon.
[pure virtual] QStyle::SubControl QStyle::hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget = nullptr) const
Возвращает подэлемент по заданной position в заданном сложном control (с параметрами стиля, указанными в option).
Обратите внимание, что position выражена в координатах экрана.
Аргумент option — указатель на объект QStyleOptionComplex (или один из его подклассов). Объект можно привести к соответствующему типу с помощью функции qstyleoption_cast(). Подробности см. в drawComplexControl(). Аргумент widget необязателен и может содержать дополнительную информацию для функции.
См. также drawComplexControl() и subControlRect().
[virtual] QRect QStyle::itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const
Возвращает область внутри заданного rectangle, в которой необходимо нарисовать указанную pixmap в соответствии с заданным alignment.
[virtual] QRect QStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const
Возвращает область внутри заданного rectangle, в которой необходимо нарисовать предоставленный text в соответствии с заданными metrics и alignment. Параметр enabled указывает, активен ли связанный элемент.
Если заданный rectangle больше, чем область, необходимая для рендеринга text, возвращаемый прямоугольник будет смещён внутри rectangle в соответствии с заданным alignment. Например, если alignment равен Qt::AlignCenter, возвращаемый прямоугольник будет центрирован внутри rectangle. Если заданный rectangle меньше, чем необходимая область, возвращаемый прямоугольник будет самым маленьким прямоугольником, достаточным для рендеринга text.
См. также Qt::Alignment.
[pure virtual] int QStyle::layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = ..., const QWidget *widget = ...) const
Возвращает отступ, который следует использовать между control1 и control2 в макете. orientation указывает, выстроены ли элементы управления бок о бок или друг под другом. Параметр option может использоваться для передачи дополнительной информации о родительском виджете. Параметр widget необязателен и может быть использован, если option равен нулю.
Эта функция вызывается системой макета. Она используется только в том случае, если PM_LayoutHorizontalSpacing или PM_LayoutVerticalSpacing возвращает отрицательное значение.
Эта функция была введена в Qt 4.3.
См. также combinedLayoutSpacing().
[pure virtual] int QStyle::pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
Возвращает значение заданного пиксельного metric.
Заданные option и widget могут использоваться для вычисления метрики. В общем случае аргумент widget не используется. Аргумент option может быть приведён к соответствующему типу с помощью функции qstyleoption_cast(). Обратите внимание, что option может быть нулевым даже для PixelMetrics, которые могут его использовать. В таблице ниже приведены соответствующие приведения option:
Некоторые метрики пикселей вызываются виджетами, а некоторые — только внутренне стилем. Если метрика не вызывается виджетом, автор стиля решает, использовать её или нет. В некоторых стилях это может быть нецелесообразно.
[virtual] void QStyle::polish(QWidget *widget)
Инициализирует внешний вид заданного виджета widget.
Эта функция вызывается для каждого виджета в какой-то момент после его полного создания, но непосредственно перед его первым отображением.
Обратите внимание, что реализация по умолчанию ничего не делает. Разумные действия в этой функции могут включать вызов функции QWidget::setBackgroundMode() для виджета. Не используйте функцию для установки, например, геометрии. Переопределение этой функции предоставляет «задний ход», с помощью которого можно изменить внешний вид виджета, но с помощью механизма стиля Qt это редко необходимо; вместо этого переопределяйте drawItemPixmap(), drawItemText(), drawPrimitive() и т. д.
Функция QWidget::inherits() может предоставить достаточно информации для настройки, специфичной для класса. Но поскольку ожидается, что новые подклассы QStyle будут работать с разумной эффективностью со всеми текущими и будущими виджетами, рекомендуется ограниченное использование жёстко заданной настройки.
См. также unpolish().
[virtual] void QStyle::polish(QApplication *application)
Это перегруженная функция.
Поздняя инициализация заданного объекта application.
[virtual] void QStyle::polish(QPalette &palette)
Это перегруженная функция.
Изменяет palette в соответствии с требованиями стиля к цветовым палитрам (если таковые имеются).
См. также QPalette и QApplication::setPalette().
const QStyle *QStyle::proxy() const
Эта функция возвращает текущий прокси для этого стиля. По умолчанию большинство стилей вернут себя. Однако при использовании прокси-стиля он позволит стилю вызывать обратный вызов в свой прокси.
Эта функция была добавлена в Qt 4.6.
[pure virtual] QSize QStyle::sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const
Возвращает размер элемента, описанного указанным option и type, на основе предоставленного contentsSize.
Аргумент option — указатель на QStyleOption или один из его подклассов. option можно преобразовать к соответствующему типу с помощью функции qstyleoption_cast(). widget — необязательный аргумент, который может содержать дополнительную информацию, используемую для расчёта размера.
См. таблицу ниже для соответствующих преобразований option:
См. также ContentsType и QStyleOption.
[static] int QStyle::sliderPositionFromValue(int min, int max, int logicalValue, int span, bool upsideDown = false)
Преобразует заданное logicalValue в позицию пикселей. Параметр min соответствует 0, max — span, а другие значения распределяются равномерно между ними.
Эта функция может обрабатывать весь диапазон целых чисел без переполнения, при условии, что span меньше 4096.
По умолчанию функция предполагает, что максимальное значение находится справа для горизонтальных элементов и внизу для вертикальных. Установите параметр upsideDown в значение true, чтобы изменить это поведение.
См. также sliderValueFromPosition().
[static] int QStyle::sliderValueFromPosition(int min, int max, int position, int span, bool upsideDown = false)
Преобразует заданную позицию пикселей position в логическое значение. 0 соответствует параметру min, span — max, а другие значения распределяются равномерно между ними.
Эта функция может обрабатывать весь диапазон целых чисел без переполнения.
По умолчанию функция предполагает, что максимальное значение находится справа для горизонтальных элементов и внизу для вертикальных. Установите параметр upsideDown в значение true, чтобы изменить это поведение.
См. также sliderPositionFromValue().
[pure virtual] QIcon QStyle::standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = ..., const QWidget *widget = ...) const
Возвращает значок для данного standardIcon.
standardIcon — это стандартное пиктографическое изображение, которое может соответствовать определённому существующему стилю или руководству по оформлению графического интерфейса. Аргумент option может использоваться для передачи дополнительной информации, необходимой при определении подходящей иконки. Аргумент widget является необязательным и также может помочь в определении иконки.
Данная функция была добавлена в Qt 4.1.
[virtual] QPalette QStyle::standardPalette() const
Возвращает стандартную палитру стиля.
Обратите внимание, что на системах, поддерживающих системные цвета, стандартная палитра стиля не используется. В частности, стили Windows Vista и Mac не используют стандартную палитру, а используют собственные механизмы темы. При использовании этих стилей вы не должны устанавливать палитру с помощью QApplication::setPalette().
См. также QApplication::setPalette().
[pure virtual] int QStyle::styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const
Возвращает целое число, представляющее указанный стиль hint для заданного widget, описанного предоставленным стилем option.
returnData используется, когда запрашивающему виджету требуется более подробные данные, чем целое число, возвращаемое styleHint(). Подробнее см. описание класса QStyleHintReturn.
[pure virtual] QRect QStyle::subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget = nullptr) const
Возвращает прямоугольник, содержащий указанный subControl заданного комплексного control (со стилем, указанным в option). Прямоугольник определяется в координатах экрана.
Аргумент option — указатель на QStyleOptionComplex или один из его подклассов, который можно привести к соответствующему типу с помощью функции qstyleoption_cast(). Подробнее см. drawComplexControl(). Аргумент widget является необязательным и может содержать дополнительную информацию для функции.
См. также drawComplexControl().
[pure virtual] QRect QStyle::subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const
Возвращает подобласть для данного element, как описано в предоставленном стиле option. Возвращаемый прямоугольник определяется в координатах экрана.
Аргумент widget является необязательным и может использоваться для определения области. Объект QStyleOption может быть приведён к соответствующему типу с помощью функции qstyleoption_cast(). См. таблицу ниже для соответствующих приведений option:
[virtual] void QStyle::unpolish(QWidget *widget)
Деинициализирует внешний вид заданного widget.
Эта функция является аналогом polish(). Она вызывается для каждого отполированного виджета при динамическом изменении стиля; предыдущий стиль должен деинициализировать свои настройки перед тем, как новый стиль сможет их повторно инициализировать.
Обратите внимание, что unpolish() будет вызвана только если виджет уничтожается. Это может привести к проблемам в некоторых случаях, например, если вы удаляете виджет из пользовательского интерфейса, кешируете его, а затем повторно вставляете его после изменения стиля; некоторые классы Qt кэшируют свои виджеты.
См. также polish().
[virtual] void QStyle::unpolish(QApplication *application)
Это перегруженная функция.
Деинициализирует заданное application.
[static] Qt::Alignment QStyle::visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment)
Преобразует выравнивание Qt::AlignLeft или Qt::AlignRight без Qt::AlignAbsolute в Qt::AlignLeft или Qt::AlignRight с Qt::AlignAbsolute в зависимости от направления direction. Другие флаги выравнивания остаются неизменными.
Если горизонтальное выравнивание не было указано, функция возвращает значение по умолчанию для данного направления direction.
[static] QPoint QStyle::visualPos(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QPoint &logicalPosition)
Возвращает заданную logicalPosition, преобразованную в координаты экрана на основе указанного direction. boundingRectangle используется при преобразовании.
См. также QWidget::layoutDirection.
[static] QRect QStyle::visualRect(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QRect &logicalRectangle)
Возвращает заданный logicalRectangle, преобразованный в координаты экрана на основе указанного direction. boundingRectangle используется при преобразовании.
Эта функция предназначена для поддержки систем с отображением справа налево и обычно используется в реализациях функции subControlRect().
См. также QWidget::layoutDirection.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qstyle.html