Класс 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_SpinBox_StepModifier } |
| Перечисление | 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 |
| virtual int | pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const = 0 |
| virtual void | polish(QWidget *widget) |
| virtual void | polish(QApplication *application) |
| virtual void | polish(QPalette &palette) |
| const QStyle * | proxy() const |
| virtual QSize | sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const = 0 |
| virtual QIcon | standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const = 0 |
| virtual QPalette | standardPalette() const |
| virtual int | styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const = 0 |
| virtual QRect | subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget = nullptr) const = 0 |
| virtual QRect | subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const = 0 |
| virtual void | unpolish(QWidget *widget) |
| virtual void | unpolish(QApplication *application) |
Статические публичные члены
| QRect | alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle) |
| int | sliderPositionFromValue(int min, int max, int logicalValue, int span, bool upsideDown = false) |
| int | sliderValueFromPosition(int min, int max, int position, int span, bool upsideDown = false) |
| Qt::Alignment | visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment) |
| QPoint | visualPos(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QPoint &logicalPosition) |
| QRect | visualRect(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QRect &logicalRectangle) |
Подробное описание
Qt содержит набор подклассов QStyle, которые эмулируют стили различных платформ, поддерживаемых Qt (QWindowsStyle, QMacStyle и т. д.). По умолчанию эти стили включены в модуль Qt GUI. Стиль также может быть доступен в виде плагинов.
Встроенные виджеты Qt используют QStyle для выполнения практически всех операций отрисовки, гарантируя, что они выглядят точно так же, как эквивалентные родные виджеты. На диаграмме ниже показан QComboBox в девяти различных стилях.
Темы:
Установка стиля
Стиль всего приложения можно установить с помощью функции QApplication::setStyle(). Его также может указать пользователь приложения, используя -style командную строку:
./myapplication -style windows
Если стиль не указан, Qt выберет наиболее подходящий стиль для платформы или среды рабочего стола пользователя.
Стиль также можно установить на отдельный виджет, используя функцию QWidget::setStyle().
Разработка осознающих стиль пользовательских виджетов
Если вы разрабатываете пользовательские виджеты и хотите, чтобы они хорошо выглядели на всех платформах, вы можете использовать функции QStyle для выполнения частей отрисовки виджета, таких как drawItemText(), drawItemPixmap(), drawPrimitive(), drawControl() и drawComplexControl().
Большинство функций отрисовки QStyle принимают четыре аргумента:
- значение перечисления, указывающее, какой графический элемент нужно нарисовать
- QStyleOption, указывающий, как и где отобразить этот элемент
- QPainter, который должен использоваться для отрисовки элемента
- QWidget, на котором выполняется отрисовка (необязательно)
Например, если вы хотите нарисовать прямоугольник фокуса на вашем виджете, вы можете написать:
void MyWidget::paintEvent(QPaintEvent * /* event */)
{
QPainter painter(this);
QStyleOptionFocusRect option;
option.initFrom(this);
option.backgroundColor = palette().color(QPalette::Background);
style()->drawPrimitive(QStyle::PE_FrameFocusRect, &option, &painter, this);
} QStyle получает всю необходимую информацию для отрисовки графического элемента из QStyleOption. Виджет передается в качестве последнего аргумента в случае, если стилю требуется выполнить специальные эффекты (например, анимированные кнопки по умолчанию в macOS), но это не обязательно. На самом деле, вы можете использовать QStyle для отрисовки на любом устройстве рисования, а не только на виджетах, правильно установив QPainter.
QStyleOption имеет различные подклассы для разных типов графических элементов, которые можно отрисовать. Например, PE_FrameFocusRect ожидает аргумент QStyleOptionFocusRect.
Для обеспечения максимальной скорости операций отрисовки, QStyleOption и его подклассы имеют открытые данные. См. документацию класса QStyleOption для получения подробностей о том, как его использовать.
Для удобства Qt предоставляет класс QStylePainter, который объединяет QStyle, QPainter и QWidget. Это позволяет писать
QStylePainter painter(this);
...
painter.drawPrimitive(QStyle::PE_FrameFocusRect, option); вместо
QPainter painter(this);
...
style()->drawPrimitive(QStyle::PE_FrameFocusRect, &option, &painter, this); Создание пользовательской темы
Вы можете создать пользовательский вид и ощущения для своего приложения, создав пользовательскую тему. Существует два подхода к созданию пользовательской темы. В статическом подходе вы выбираете существующий класс QStyle, наследуетесь от него и переопределяете виртуальные функции для предоставления пользовательского поведения, или вы создаете весь класс QStyle с нуля. В динамическом подходе вы изменяете поведение системной темы во время выполнения. Статический подход описан ниже. Динамический подход описан в QProxyStyle.
Первый шаг в статическом подходе — выбрать одну из тем, предоставленных Qt, на основе которой вы будете создавать свою пользовательскую тему. Ваш выбор класса QStyle будет зависеть от того, какая тема наиболее похожа на желаемую тему. Наиболее общий класс, который можно использовать в качестве базового, — QCommonStyle (не QStyle). Это связано с тем, что Qt требует, чтобы его темы были QCommonStyle.
В зависимости от тех частей базовой темы, которые вы хотите изменить, вам необходимо переопределить функции, используемые для рисования этих частей интерфейса. Чтобы проиллюстрировать это, мы изменим вид стрелок элементов спин-боксов, нарисованных классом QWindowsStyle. Стрелки являются примитивными элементами, которые рисуются функцией drawPrimitive(), поэтому нам нужно переопределить эту функцию. Нам нужна следующая декларация класса:
class CustomStyle : public QProxyStyle
{
Q_OBJECT
public:
CustomStyle();
~CustomStyle() {}
void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget) const override;
}; Для рисования стрелок вверх и вниз QSpinBox использует примитивные элементы PE_IndicatorSpinUp и PE_IndicatorSpinDown. Вот как переопределить функцию drawPrimitive() для их различной отрисовки:
void CustomStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget) const
{
if (element == PE_IndicatorSpinUp || element == PE_IndicatorSpinDown) {
QPolygon points(3);
int x = option->rect.x();
int y = option->rect.y();
int w = option->rect.width() / 2;
int h = option->rect.height() / 2;
x += (option->rect.width() - w) / 2;
y += (option->rect.height() - h) / 2;
if (element == PE_IndicatorSpinUp) {
points[0] = QPoint(x, y + h);
points[1] = QPoint(x + w, y + h);
points[2] = QPoint(x + w / 2, y);
} else { // PE_SpinBoxDown
points[0] = QPoint(x, y);
points[1] = QPoint(x + w, y);
points[2] = QPoint(x + w / 2, y + h);
}
if (option->state & State_Enabled) {
painter->setPen(option->palette.mid().color());
painter->setBrush(option->palette.buttonText());
} else {
painter->setPen(option->palette.buttonText().color());
painter->setBrush(option->palette.mid());
}
painter->drawPolygon(points);
} else {
QProxyStyle::drawPrimitive(element, option, painter, widget);
}
} Обратите внимание, что мы не используем аргумент widget, за исключением передачи его функции QWindowStyle::drawPrimitive(). Как уже упоминалось ранее, информация о том, что должно быть нарисовано и как оно должно быть нарисовано, указывается объектом QStyleOption, поэтому нет необходимости спрашивать у виджета.
Если вам нужно использовать аргумент widget для получения дополнительной информации, будьте внимательны, чтобы убедиться, что он не равен 0 и что он имеет правильный тип перед использованием. Например:
const QSpinBox *spinBox = qobject_cast<const QSpinBox *>(widget);
if (spinBox) {
...
} При реализации пользовательской темы нельзя предполагать, что виджет — это QSpinBox только потому, что значение перечисления называется PE_IndicatorSpinUp или PE_IndicatorSpinDown.
Документация для примера тем более подробно рассматривает эту тему.
Предупреждение: В настоящее время стили Qt для пользовательских подклассов QStyle не поддерживаются. Мы планируем решить эту проблему в какой-то будущей версии.
Использование пользовательской темы
Существует несколько способов использования пользовательской темы в приложении Qt. Самый простой способ — передать пользовательскую тему статической функции QApplication::setStyle() перед созданием объекта QApplication:
#include <QtWidgets>
#include "customstyle.h"
int main(int argc, char *argv[])
{
QApplication::setStyle(new CustomStyle);
QApplication app(argc, argv);
QSpinBox spinBox;
spinBox.show();
return app.exec();
} Вы можете вызвать QApplication::setStyle() в любое время, но вызывая её до конструктора, вы гарантируете, что предпочтения пользователя, установленные с помощью -style параметра командной строки, будут учтены.
Возможно, вам нужно сделать свою пользовательскую тему доступной для использования в других приложениях, которые могут не быть вашими и, следовательно, недоступны для вашей перекомпиляции. Система плагинов Qt позволяет создавать темы в виде плагинов. Темы, созданные как плагины, загружаются как общие объекты во время выполнения самим Qt. Обратитесь к документации по плагинам Qt для получения дополнительной информации о создании плагина темы.
Скомпилируйте свой плагин и поместите его в директорию Qt plugins/styles. Теперь у нас есть настраиваемая тема, которую 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 |
Базовое значение для пользовательских пиксельных метрик. Пользовательские значения должны быть больше этого значения. |
QStyle::PM_CustomBase |
0xf0000000 |
Базовое значение для пользовательских пиксельных метрик. Пользовательские значения должны быть больше этого значения. |
См. также pixelMetric().
enum QStyle::PrimitiveElement
Это перечисление описывает различные примитивные элементы. Примитивный элемент — это общий элемент графического интерфейса, например, индикатор флажка или фаска кнопки.
| Константа | Значение | Описание |
|---|---|---|
QStyle::PE_PanelButtonCommand |
13 |
Кнопка, используемая для инициирования действия, например, кнопка QPushButton. |
QStyle::PE_FrameDefaultButton |
1 |
Эта рамка вокруг стандартной кнопки, например, в диалоговом окне. |
QStyle::PE_PanelButtonBevel |
14 |
Общий элемент управления с закруглениями кнопок. |
QStyle::PE_PanelButtonTool |
15 |
Элемент управления для кнопки инструментов, используется с QToolButton. |
QStyle::PE_PanelLineEdit |
18 |
Элемент управления для QLineEdit. |
QStyle::PE_IndicatorButtonDropDown |
24 |
Индикатор раскрывающейся кнопки, например, кнопки инструмента, которая отображает меню. |
QStyle::PE_FrameFocusRect |
3 |
Общий индикатор фокуса. |
QStyle::PE_IndicatorArrowUp |
22 |
Общий символ стрелки вверх. |
QStyle::PE_IndicatorArrowDown |
19 |
Общий символ стрелки вниз. |
QStyle::PE_IndicatorArrowRight |
21 |
Общий символ стрелки вправо. |
QStyle::PE_IndicatorArrowLeft |
20 |
Общий символ стрелки влево. |
QStyle::PE_IndicatorSpinUp |
35 |
Символ стрелки вверх для элемента управления списком, например, QSpinBox. |
QStyle::PE_IndicatorSpinDown |
32 |
Символ стрелки вниз для элемента управления списком. |
QStyle::PE_IndicatorSpinPlus |
34 |
Символ увеличения для элемента управления списком. |
QStyle::PE_IndicatorSpinMinus |
33 |
Символ уменьшения для элемента управления списком. |
QStyle::PE_IndicatorItemViewItemCheck |
25 |
Индикатор включения/выключения для элемента представления. |
QStyle::PE_IndicatorCheckBox |
26 |
Индикатор включения/выключения, например, QCheckBox. |
QStyle::PE_IndicatorRadioButton |
31 |
Индикатор взаимоисключающего включения/выключения, например, QRadioButton. |
QStyle::PE_IndicatorDockWidgetResizeHandle |
27 |
Маркер изменения размера для окон-доков. |
QStyle::PE_Frame |
0 |
Общий фрейм. |
QStyle::PE_FrameMenu |
6 |
Рамка для всплывающих окон/меню; см. также QMenu. |
QStyle::PE_PanelMenuBar |
16 |
Панель для строчек меню. |
QStyle::PE_PanelScrollAreaCorner |
40 |
Панель в нижнем правом (или нижнем левом) углу области прокрутки. |
QStyle::PE_FrameDockWidget |
2 |
Рамка панели для окон-доков и панелей инструментов. |
QStyle::PE_FrameTabWidget |
8 |
Рамка для элементов управления вкладками. |
QStyle::PE_FrameLineEdit |
5 |
Рамка панели для элементов редактирования строк. |
QStyle::PE_FrameGroupBox |
4 |
Рамка панели вокруг групповых коробок. |
QStyle::PE_FrameButtonBevel |
10 |
Рамка панели для закругления кнопки. |
QStyle::PE_FrameButtonTool |
11 |
Рамка панели для кнопки инструмента. |
QStyle::PE_IndicatorHeaderArrow |
28 |
Стрелка, используемая для индикации сортировки в списке или заголовке таблицы. |
QStyle::PE_FrameStatusBarItem |
7 |
Рамка для элемента строки состояния; см. также QStatusBar. |
QStyle::PE_FrameWindow |
9 |
Рамка вокруг окна MDI или окна-дока. |
QStyle::PE_IndicatorMenuCheckMark |
29 |
Отметка галочки, используемая в меню. |
QStyle::PE_IndicatorProgressChunk |
30 |
Секция индикатора полосы прогресса; см. также QProgressBar. |
QStyle::PE_IndicatorBranch |
23 |
Линии, используемые для представления ветви дерева в представлении дерева. |
QStyle::PE_IndicatorToolBarHandle |
36 |
Маркер панели инструментов. |
QStyle::PE_IndicatorToolBarSeparator |
37 |
Разделитель в панели инструментов. |
QStyle::PE_PanelToolBar |
17 |
Панель для панели инструментов. |
QStyle::PE_PanelTipLabel |
38 |
Панель для метки подсказки. |
QStyle::PE_FrameTabBarBase |
12 |
Рамка, нарисованная для панели вкладок, обычно рисуется для панели вкладок, которая не является частью виджета вкладок. |
QStyle::PE_IndicatorTabTear |
39 |
Устарело. Используйте PE_IndicatorTabTearLeft вместо этого. |
QStyle::PE_IndicatorTabTearLeft |
PE_IndicatorTabTear |
Индикатор, показывающий, что вкладка частично прокручена влево от видимой панели вкладок при большом количестве вкладок. |
QStyle::PE_IndicatorTabTearRight |
49 |
Индикатор, показывающий, что вкладка частично прокручена вправо от видимой панели вкладок при большом количестве вкладок. |
QStyle::PE_IndicatorColumnViewArrow |
42 |
Стрелка в QColumnView. |
QStyle::PE_Widget |
41 |
Простой QWidget. |
QStyle::PE_CustomBase |
0xf000000 |
Базовое значение для пользовательских примитивных элементов. Все значения выше этого зарезервированы для пользовательского использования. Пользовательские значения должны быть больше этого значения. |
QStyle::PE_IndicatorItemViewItemDrop |
43 |
Индикатор, отображаемый для показа, где элемент в представлении элементов собирается опускаться во время операции перетаскивания в представлении элементов. |
QStyle::PE_PanelItemViewItem |
44 |
Фон для элемента в представлении элементов. |
QStyle::PE_PanelItemViewRow |
45 |
Фон строки в представлении элементов. |
QStyle::PE_PanelStatusBar |
46 |
Панель для строки состояния. |
QStyle::PE_IndicatorTabClose |
47 |
Кнопка закрытия на панели вкладок. |
QStyle::PE_PanelMenu |
48 |
Панель для меню. |
См. также drawPrimitive().
enum QStyle::RequestSoftwareInputPanel
Этот перечисление описывает в каких обстоятельствах элемент управления вводом программного обеспечения будет запрошен виджетами, способными принимать ввод.
| Константа | Значение | Описание |
|---|---|---|
QStyle::RSIP_OnMouseClickAndAlreadyFocused |
0 |
Запрашивает панель ввода, если пользователь щелкает по виджету, но только если он уже сфокусирован. |
QStyle::RSIP_OnMouseClick |
1 |
Запрашивает панель ввода, если пользователь щелкает по виджету. |
См. также QInputMethod.
enum QStyle::StandardPixmap
Это перечисление описывает доступные стандартные пиктограммы. Стандартная пиктограмма — это пиктограмма, которая может следовать определенным существующим стилям или руководствам по графическому интерфейсу.
| Константа | Значение | Описание |
|---|---|---|
QStyle::SP_TitleBarMinButton |
1 |
Кнопка минимизации на заголовке (например, в QMdiSubWindow). |
QStyle::SP_TitleBarMenuButton |
0 |
Кнопка меню на заголовке. |
QStyle::SP_TitleBarMaxButton |
2 |
Кнопка максимизации на заголовке. |
QStyle::SP_TitleBarCloseButton |
3 |
Кнопка закрытия на заголовке. |
QStyle::SP_TitleBarNormalButton |
4 |
Кнопка восстановления (нормального размера) на заголовке. |
QStyle::SP_TitleBarShadeButton |
5 |
Кнопка скрытия на заголовке. |
QStyle::SP_TitleBarUnshadeButton |
6 |
Кнопка отображения на заголовке. |
QStyle::SP_TitleBarContextHelpButton |
7 |
Кнопка справки по контексту на заголовке. |
QStyle::SP_MessageBoxInformation |
9 |
Иконка «информация». |
QStyle::SP_MessageBoxWarning |
10 |
Иконка «предупреждение». |
QStyle::SP_MessageBoxCritical |
11 |
Иконка «критично». |
QStyle::SP_MessageBoxQuestion |
12 |
Иконка «вопрос». |
QStyle::SP_DesktopIcon |
13 |
Иконка «рабочий стол». |
QStyle::SP_TrashIcon |
14 |
Иконка «корзина». |
QStyle::SP_ComputerIcon |
15 |
Иконка «Мой компьютер». |
QStyle::SP_DriveFDIcon |
16 |
Иконка дискеты. |
QStyle::SP_DriveHDIcon |
17 |
Иконка жёсткого диска. |
QStyle::SP_DriveCDIcon |
18 |
Иконка компакт-диска. |
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. Возвращает пустой объект pixmap или иконку на всех остальных платформах. |
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 |
Используется для указания, было ли изменено фокусирование с помощью клавиатуры, например, клавиша Tab, BackTab или сочетание клавиш. |
QStyle::State_MouseOver |
0x00002000 |
Используется для указания, находится ли виджет под курсором мыши. |
QStyle::State_NoChange |
0x00000010 |
Используется для указания три-состоятельного флажка. |
QStyle::State_Off |
0x00000008 |
Используется для указания, что виджет не выбран. |
QStyle::State_On |
0x00000020 |
Используется для указания, что виджет выбран. |
QStyle::State_Raised |
0x00000002 |
Используется для указания, возвышена ли кнопка. |
QStyle::State_ReadOnly |
0x02000000 |
Используется для указания, что виджет только для чтения. |
QStyle::State_Selected |
0x00008000 |
Используется для указания, что виджет выбран. |
QStyle::State_Item |
0x00100000 |
Используется элементами представления для указания, должна ли быть нарисована горизонтальная ветвь. |
QStyle::State_Open |
0x00040000 |
Используется элементами представления для указания, раскрыта ли ветвь дерева. |
QStyle::State_Sibling |
0x00200000 |
Используется элементами представления для указания, требуется ли рисовать вертикальную линию (для потомков). |
QStyle::State_Sunken |
0x00000004 |
Используется для указания, западает ли виджет или нажат. |
QStyle::State_UpArrow |
0x00004000 |
Используется для указания, должна ли быть видна стрелка вверх на виджете. |
QStyle::State_Mini |
0x08000000 |
Используется для указания мини-стилевого виджета или кнопки Mac. |
QStyle::State_Small |
0x04000000 |
Используется для указания виджета или кнопки Mac в малом стиле. |
Тип State является псевдонимом для QFlags<StateFlag>. Он хранит результат объединения по ИЛИ значений StateFlag.
См. также drawPrimitive().
enum QStyle::StyleHint
Это перечисление описывает доступные подсказки стиля. Подсказка стиля — это общая подсказка по виду и/или ощущению.
| Константа | Значение | Описание |
|---|---|---|
QStyle::SH_EtchDisabledText |
0 |
Текст в отключенном состоянии «выгравирован», как в Windows. |
QStyle::SH_DitherDisabledText |
1 |
Текст в отключенном состоянии растрирован, как в Motif. |
QStyle::SH_ScrollBar_ContextMenu |
62 |
Наличие контекстного меню в полосе прокрутки. |
QStyle::SH_ScrollBar_MiddleClickAbsolutePosition |
2 |
Булево значение. Если 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 |
Ввод текста инициирует поиск соответствующих пунктов меню, в противном случае рассматривается только мнемоника. |
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 |
Указывает, должны ли кнопки StandardButtons в 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. |
См. также 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 |
Поле ввода combobox; см. также QComboBox. |
QStyle::SC_ComboBoxArrow |
0x00000004 |
Кнопка стрелки combobox. |
QStyle::SC_ComboBoxFrame |
0x00000001 |
Рамка combobox. |
QStyle::SC_ComboBoxListBoxPopup |
0x00000008 |
Прямоугольник для отображения выпадающего списка combobox. Используется для расчета положения выпадающего списка. |
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 |
0x00000008 |
Паз регулятора. |
QStyle::SC_DialTickmarks |
0x00000004 |
Деления регулятора. |
QStyle::SC_GroupBoxFrame |
0x00000008 |
Рамка группового поля. |
QStyle::SC_GroupBoxLabel |
0x00000002 |
Заголовок группового поля. |
QStyle::SC_GroupBoxCheckBox |
0x00000001 |
Необязательная галочка группового поля. |
QStyle::SC_GroupBoxContents |
0x00000004 |
Содержимое группового поля. |
QStyle::SC_MdiNormalButton |
0x00000002 |
Обычная кнопка для подокна MDI в строке меню. |
QStyle::SC_MdiMinButton |
0x00000001 |
Кнопка сворачивания для подокна MDI в строке меню. |
QStyle::SC_MdiCloseButton |
0x00000004 |
Кнопка закрытия для подокна MDI в строке меню. |
QStyle::SC_All |
0xffffffff |
Специальное значение, которое соответствует всем подэлементам управления. |
Тип SubControls — это псевдоним для QFlags<SubControl>. Он хранит логическое ИЛИ сочетание значений SubControl.
См. также ComplexControl.
перечисление 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.
END_OF_DOCUMENT_MARKER| Элемент управления | QStyleOption Подкласс | Флаг стиля | Примечание |
|---|---|---|---|
| CE_MenuItem, CE_MenuBarItem | QStyleOptionMenuItem | State_Selected | Элемент меню в настоящее время выбран. |
| State_Enabled | Элемент включен. | ||
| State_DownArrow | Указывает, что должна быть нарисована стрелка вниз для прокрутки. | ||
| State_UpArrow | Указывает, что должна быть нарисована стрелка вверх для прокрутки. | ||
| State_HasFocus | Устанавливается, если строка меню имеет фокус ввода. | ||
| CE_PushButton, CE_PushButtonBevel, CE_PushButtonLabel | QStyleOptionButton | State_Enabled | Устанавливается, если кнопка включена. |
| State_HasFocus | Устанавливается, если кнопка имеет фокус ввода. | ||
| State_Raised | Устанавливается, если кнопка не нажата, не активна и не плоская. | ||
| State_On | Устанавливается, если кнопка является переключателем и включена. | ||
| State_Sunken | Устанавливается, если кнопка нажата (т.е., нажата кнопка мыши или клавиша пробела на кнопке). | ||
| CE_RadioButton, CE_RadioButtonLabel, CE_CheckBox, CE_CheckBoxLabel | QStyleOptionButton | State_Enabled | Устанавливается, если кнопка включена. |
| State_HasFocus | Устанавливается, если кнопка имеет фокус ввода. | ||
| State_On | Устанавливается, если кнопка выбрана. | ||
| State_Off | Устанавливается, если кнопка не выбрана. | ||
| State_NoChange | Устанавливается, если кнопка находится в состоянии NoChange. | ||
| State_Sunken | Устанавливается, если кнопка нажата (т.е., нажата кнопка мыши или клавиша пробела на кнопке). | ||
| CE_ProgressBarContents, CE_ProgressBarLabel, CE_ProgressBarGroove | QStyleOptionProgressBar | State_Enabled | Устанавливается, если полоса прогресса включена. |
| State_HasFocus | Устанавливается, если полоса прогресса имеет фокус ввода. | ||
| CE_Header, CE_HeaderSection, CE_HeaderLabel | QStyleOptionHeader | ||
| CE_TabBarTab, CE_TabBarTabShape, CE_TabBarTabLabel | QStyleOptionTab | State_Enabled | Устанавливается, если вкладная панель включена. |
| State_Selected | Вкладная панель в настоящее время выбрана. | ||
| State_HasFocus | Устанавливается, если вкладка вкладки имеет фокус ввода. | ||
| CE_ToolButtonLabel | QStyleOptionToolButton | State_Enabled | Устанавливается, если кнопка инструмента включена. |
| State_HasFocus | Устанавливается, если кнопка инструмента имеет фокус ввода. | ||
| State_Sunken | Устанавливается, если кнопка инструмента нажата (т.е., нажата кнопка мыши или клавиша пробела). | ||
| State_On | Устанавливается, если кнопка инструмента является переключателем и включена. | ||
| State_AutoRaise | Устанавливается, если для кнопки инструмента включен режим автоматического поднятия. | ||
| State_MouseOver | Устанавливается, если указатель мыши находится над кнопкой инструмента. | ||
| State_Raised | Устанавливается, если кнопка не нажата и не активна. | ||
| CE_ToolBoxTab | QStyleOptionToolBox | State_Selected | Вкладка в настоящее время выбрана. |
| CE_HeaderSection | QStyleOptionHeader | State_Sunken | Указывает, что раздел нажат. |
| State_UpArrow | Указывает, что индикатор сортировки должен указывать вверх. | ||
| State_DownArrow | Указывает, что индикатор сортировки должен указывать вниз. |
См. также drawPrimitive() и drawComplexControl().
[virtual] void QStyle::drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const
Рисует заданную pixmap в указанном rectangle в соответствии с указанным alignment, используя предоставленный painter.
См. также drawItemText().
[virtual] void QStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const
Рисует заданный text в указанном rectangle с использованием предоставленного painter и palette.
Текст рисуется с помощью пера painter и выравнивается и обрезается в соответствии с указанным alignment. Если задан явный textRole, текст рисуется с использованием цвета palette для заданной роли. Параметр enabled указывает, включен ли элемент; при переопределении этой функции параметр enabled должен влиять на способ рисования элемента.
См. также Qt::Alignment и drawItemPixmap().
[pure virtual] void QStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const
Рисует заданный примитивный element с помощью предоставленного painter, используя параметры стиля, указанные в option.
Аргумент widget является необязательным и может содержать виджет, который может помочь в рисовании примитивного элемента.
В таблице ниже перечислены примитивные элементы и соответствующие подклассы стилевых опций. Стилевые опции содержат все параметры, необходимые для рисования элементов, включая QStyleOption::state, который содержит флаги стиля, используемые при рисовании. В таблице также описываются флаги, которые устанавливаются при приведении заданного option к соответствующему подклассу.
Обратите внимание, что если примитивный элемент здесь не указан, это означает, что он использует обычный объект QStyleOption.
| Примитивный элемент | Класс QStyleOption | Флаг стиля | Примечание |
|---|---|---|---|
| PE_FrameFocusRect | QStyleOptionFocusRect | State_FocusAtBorder | Является ли фокус на границе или внутри виджета. |
| PE_IndicatorCheckBox | QStyleOptionButton | State_NoChange | Указывает "трёхсостояниевый" флажок. |
| State_On | Указывает, что индикатор отмечен. | ||
| PE_IndicatorRadioButton | QStyleOptionButton | State_On | Указывает, что радиокнопка выбрана. |
| State_NoChange | Указывает "трёхсостояниевый" контроллер. | ||
| State_Enabled | Указывает, что контроллер включён. | ||
| PE_IndicatorBranch | QStyleOption | State_Children | Указывает, что необходимо нарисовать элемент управления для разворачивания дерева, чтобы показать дочерние элементы. |
| State_Item | Указывает, что необходимо нарисовать горизонтальную ветвь (для показа дочернего элемента). | ||
| State_Open | Указывает, что ветвь дерева развернута. | ||
| State_Sibling | Указывает, что необходимо нарисовать вертикальную линию (для показа элемента-соседства). | ||
| PE_IndicatorHeaderArrow | QStyleOptionHeader | State_UpArrow | Указывает, что стрелка должна быть нарисована вверх; в противном случае — вниз. |
| PE_FrameGroupBox, PE_Frame, PE_FrameLineEdit, PE_FrameMenu, PE_FrameDockWidget, PE_FrameWindow | QStyleOptionFrame | State_Sunken | Указывает, что рамка должна быть вдавленной. |
| PE_IndicatorToolBarHandle | QStyleOption | State_Horizontal | Указывает, что ручка окна горизонтальна, а не вертикальна. |
| PE_IndicatorSpinPlus, PE_IndicatorSpinMinus, PE_IndicatorSpinUp, PE_IndicatorSpinDown, | QStyleOptionSpinBox | State_Sunken | Указывает, что кнопка нажата. |
| PE_PanelButtonCommand | QStyleOptionButton | State_Enabled | Устанавливается, если кнопка активна. |
| State_HasFocus | Устанавливается, если кнопка имеет фокус ввода. | ||
| State_Raised | Устанавливается, если кнопка не нажата, не включена и не плоская. | ||
| State_On | Устанавливается, если кнопка является переключателем и включена. | ||
| State_Sunken | Устанавливается, если кнопка нажата (т.е., кнопка мыши или клавиша пробела нажаты на кнопке). |
См. также drawComplexControl() и drawControl().
[pure virtual] QPixmap QStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const
Возвращает копию заданной pixmap, стилизованной в соответствии с заданным iconMode и учитывающей цветовую схему, указанную в option.
Параметр option может передавать дополнительную информацию, но он должен содержать цветовую схему.
Обратите внимание, что не все pixmap будут соответствовать, в этом случае возвращаемая pixmap — это просто копия.
См. также QIcon.
[pure virtual] QStyle::SubControl QStyle::hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget = nullptr) const
Возвращает подконтроль в заданной position в заданном сложном control (со стилями, заданными в option).
Обратите внимание, что position выражена в координатах экрана.
Аргумент option — указатель на объект QStyleOptionComplex (или одного из его подклассов). Объект можно привести к соответствующему типу, используя функцию qstyleoption_cast(). Подробности см. в drawComplexControl(). Аргумент widget является необязательным и может содержать дополнительную информацию для функции.
См. также drawComplexControl() и subControlRect().
[virtual] QRect QStyle::itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const
Возвращает область внутри заданного rectangle, в которой необходимо нарисовать указанную pixmap в соответствии с определённым alignment.
[virtual] QRect QStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const
Возвращает область внутри заданного rectangle, в которой необходимо нарисовать предоставленный текст text в соответствии с указанными метриками шрифта metrics и alignment. Параметр enabled указывает, активен ли связанный элемент.
Если заданный rectangle больше, чем необходимо для рендеринга текста, возвращаемый прямоугольник будет смещён внутри rectangle в соответствии с указанным alignment. Например, если alignment — Qt::AlignCenter, возвращаемый прямоугольник будет центрирован внутри rectangle. Если заданный rectangle меньше, чем необходимо, возвращаемый прямоугольник будет самым маленьким прямоугольником, достаточно большим для рендеринга текста.
См. также 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().
[pure virtual] int QStyle::pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
Возвращает значение заданного пиксельного metric.
Указанные option и widget могут использоваться для расчёта метрики. Как правило, аргумент widget не используется. Аргумент option можно привести к соответствующему типу, используя функцию qstyleoption_cast(). Обратите внимание, что option может быть нулевым даже для PixelMetrics, которые могут его использовать. В таблице ниже приведены соответствующие преобразования option:
Некоторые метрики пикселей вызываются виджетами, а некоторые только внутренне стилем. Если метрика не вызывается виджетом, автор стиля решает, использовать её или нет. Для некоторых стилей это может быть неподходящим.
[virtual] void QStyle::polish(QWidget *widget)
Инициализирует внешний вид заданного widget.
Эта функция вызывается для каждого виджета в какой-то момент после его полного создания, но перед его первым отображением.
Обратите внимание, что реализация по умолчанию ничего не делает. Разумными действиями в этой функции могут быть вызов функции QWidget::setBackgroundMode() для виджета. Не используйте функцию для установки, например, геометрии. Переопределение этой функции предоставляет скрытый доступ, позволяющий изменить внешний вид виджета, но с движком стилей Qt это редко необходимо; переопределите drawItemPixmap(), drawItemText(), drawPrimitive() и т. д. вместо этого.
Функция QWidget::inherits() может предоставить достаточно информации, чтобы позволить настроить виджеты, специфичные для класса. Но поскольку ожидается, что новые подклассы QStyle будут работать должным образом со всеми текущими и будущими виджетами, рекомендуется ограничить использование жёстко заданной настройки.
См. также unpolish().
[virtual] void QStyle::polish(QApplication *application)
Это перегруженная функция.
Поздняя инициализация объекта application.
[virtual] void QStyle::polish(QPalette &palette)
Это перегруженная функция.
Изменяет palette в соответствии с требованиями стиля для цветовых палитр (если таковые имеются).
См. также QPalette и QApplication::setPalette().
const QStyle *QStyle::proxy() const
Эта функция возвращает текущий прокси для этого стиля. По умолчанию большинство стилей вернут себя. Однако при использовании прокси-стиля он позволит стилю обращаться к своему прокси.
[pure virtual] QSize QStyle::sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const
Возвращает размер элемента, описанного указанным option и type, на основе предоставленного contentsSize.
Аргумент option — указатель на QStyleOption или один из его подклассов. option можно преобразовать в соответствующий тип, используя функцию qstyleoption_cast(). widget — необязательный аргумент, который может содержать дополнительную информацию, используемую для расчёта размера.
В таблице ниже показаны соответствующие преобразования option:
См. также ContentsType и QStyleOption.
[static] int QStyle::sliderPositionFromValue(int min, int max, int logicalValue, int span, bool upsideDown = false)
Преобразует заданное logicalValue в позицию пикселей. Параметр min соответствует 0, max — span, а другие значения распределяются равномерно между ними.
Эта функция может обрабатывать весь диапазон целых чисел без переполнения, при условии, что span меньше 4096.
По умолчанию эта функция предполагает, что максимальное значение находится справа для горизонтальных элементов и внизу для вертикальных элементов. Установите параметр upsideDown в true, чтобы перевернуть это поведение.
См. также sliderValueFromPosition().
[static] int QStyle::sliderValueFromPosition(int min, int max, int position, int span, bool upsideDown = false)
Преобразует заданную позицию пикселей position в логическое значение. 0 соответствует параметру min, span — max, а другие значения распределяются равномерно между ними.
Эта функция может обрабатывать весь диапазон целых чисел без переполнения.
По умолчанию эта функция предполагает, что максимальное значение находится справа для горизонтальных элементов и внизу для вертикальных элементов. Установите параметр upsideDown в true, чтобы перевернуть это поведение.
См. также sliderPositionFromValue().
[pure virtual] QIcon QStyle::standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
Возвращает значок для заданного standardIcon.
standardIcon — это стандартное пиктографическое изображение, которое может соответствовать определённому существующему стилю или руководству для графического интерфейса. Аргумент option может быть использован для передачи дополнительной информации, необходимой при определении соответствующей пиктограммы. Аргумент widget является необязательным и также может быть использован для помощи в определении пиктограммы.
[virtual] QPalette QStyle::standardPalette() const
Возвращает стандартную палитру стиля.
Обратите внимание, что на системах, поддерживающих системные цвета, стандартная палитра стиля не используется. В частности, стили Windows Vista и Mac не используют стандартную палитру, а используют собственные механизмы темы. С этими стилями вы не должны устанавливать палитру с помощью QApplication::setPalette().
См. также QApplication::setPalette().
[pure virtual] int QStyle::styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const
Возвращает целое число, представляющее указанный стиль hint для заданного widget, описанного предоставленным стилем option.
returnData используется, когда запрашивающему виджету необходимы более подробные данные, чем целое число, возвращаемое styleHint(). Подробности см. в описании класса QStyleHintReturn.
[pure virtual] QRect QStyle::subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget = nullptr) const
Возвращает прямоугольник, содержащий указанный subControl заданного сложного control (со стилем, указанным в option). Прямоугольник определён в координатах экрана.
Аргумент option — указатель на QStyleOptionComplex или один из его подклассов, и может быть приведён к соответствующему типу с помощью функции qstyleoption_cast(). Подробности см. в drawComplexControl(). Аргумент widget является необязательным и может содержать дополнительную информацию для функции.
См. также drawComplexControl().
[pure virtual] QRect QStyle::subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const
Возвращает подобласть для данного element, как описано в предоставленном стиле option. Возвращаемый прямоугольник определён в координатах экрана.
Аргумент widget необязателен и может быть использован для помощи в определении области. Объект QStyleOption может быть приведён к соответствующему типу с помощью функции qstyleoption_cast(). Соответствующие преобразования option приведены в таблице ниже:
[virtual] void QStyle::unpolish(QWidget *widget)
Сбросить внешний вид данного widget.
Эта функция является аналогом polish(). Она вызывается для каждого обработанного виджета всякий раз, когда стиль динамически изменяется; предыдущий стиль должен сбросить свои настройки перед тем, как новый стиль сможет их снова обработать.
Обратите внимание, что unpolish() будет вызвана только если виджет уничтожен. Это может вызвать проблемы в некоторых случаях, например, если вы удаляете виджет из пользовательского интерфейса, кэшируете его и затем снова вставляете его после изменения стиля; некоторые классы Qt кэшируют свои виджеты.
См. также polish().
[virtual] void QStyle::unpolish(QApplication *application)
Это перегруженная функция.
Сбросить внешний вид данного application.
[static] Qt::Alignment QStyle::visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment)
Преобразует выравнивание alignment Qt::AlignLeft или Qt::AlignRight без Qt::AlignAbsolute в Qt::AlignLeft или Qt::AlignRight с Qt::AlignAbsolute в соответствии с направлением макета direction. Другие флаги выравнивания остаются без изменений.
Если горизонтальное выравнивание не было указано, функция возвращает значение по умолчанию для данного направления макета direction.
[static] QPoint QStyle::visualPos(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QPoint &logicalPosition)
Возвращает данную logicalPosition, преобразованную в координаты экрана на основе указанного direction. boundingRectangle используется при выполнении преобразования.
См. также QWidget::layoutDirection.
[static] QRect QStyle::visualRect(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QRect &logicalRectangle)
Возвращает данный logicalRectangle, преобразованный в координаты экрана на основе указанного direction. boundingRectangle используется при выполнении преобразования.
Эта функция предназначена для поддержки настольных систем с направлением справа налево и обычно используется в реализациях функции subControlRect().
См. также QWidget::layoutDirection.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qstyle.html