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