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