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