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