Spec-Zone.ru › Qt 5.9

Класс QSizePolicy

Класс QSizePolicy — это атрибут макета, описывающий политику изменения размера по горизонтали и вертикали. Подробнее...

Заголовок: #include <QSizePolicy>
qmake: QT += widgets
  • Список всех членов, включая унаследованные

Типы

Перечисление ControlType { DefaultType, ButtonBox, CheckBox, ComboBox, ..., ToolButton }
Флаги ControlTypes
Перечисление Policy { Fixed, Minimum, Maximum, Preferred, ..., Ignored }
Перечисление PolicyFlag { GrowFlag, ExpandFlag, ShrinkFlag, IgnoreFlag }

Открытые функции

QSizePolicy()
QSizePolicy(Policy horizontal, Policy vertical, ControlType type = DefaultType)
ControlType controlType() const
Qt::Orientations expandingDirections() const
bool hasHeightForWidth() const
bool hasWidthForHeight() const
Policy horizontalPolicy() const
int horizontalStretch() const
bool retainSizeWhenHidden() const
void setControlType(ControlType type)
void setHeightForWidth(bool dependent)
void setHorizontalPolicy(Policy policy)
void setHorizontalStretch(int stretchFactor)
void setRetainSizeWhenHidden(bool retainSize)
void setVerticalPolicy(Policy policy)
void setVerticalStretch(int stretchFactor)
void setWidthForHeight(bool dependent)
void transpose()
QSizePolicy transposed() const
Policy verticalPolicy() const
int verticalStretch() const
operator QVariant() const
bool operator!=(const QSizePolicy &other) const
bool operator==(const QSizePolicy &other) const

Связанные нечлены

uint qHash(QSizePolicy key, uint seed = 0)
QDataStream & operator<<(QDataStream &stream, const QSizePolicy &policy)
QDataStream & operator>>(QDataStream &stream, QSizePolicy &policy)

Подробное описание

Класс QSizePolicy — это атрибут макета, описывающий политику изменения размера по горизонтали и вертикали.

Политика изменения размера виджета — это выражение его готовности к изменению размера различными способами, и она влияет на то, как виджет обрабатывается движком макета. Каждый виджет возвращает QSizePolicy, который описывает предпочтительную политику изменения размера по горизонтали и вертикали при выкладке. Вы можете изменить это для конкретного виджета, изменив свойство QWidget::sizePolicy.

QSizePolicy содержит два независимых значения QSizePolicy::Policy и два коэффициента растяжения; один описывает политику изменения размера виджета по горизонтали, а другой — по вертикали. Он также содержит флаг, указывающий, связаны ли высота и ширина его предпочтительного размера.

Политики по горизонтали и вертикали можно задать в конструкторе и изменить с помощью функций setHorizontalPolicy() и setVerticalPolicy(). Коэффициенты растяжения можно задать с помощью функций setHorizontalStretch() и setVerticalStretch(). Флаг, указывающий, зависит ли размер подсказки виджета (например, размер панели меню или метки с переносом слов) от ширины, можно установить с помощью функции setHeightForWidth().

Текущие политики изменения размера и коэффициенты растяжения можно получить с помощью функций horizontalPolicy(), verticalPolicy(), horizontalStretch() и verticalStretch(). В качестве альтернативы используйте функцию transpose() для обмена политиками и коэффициентами растяжения по горизонтали и вертикали. Функция hasHeightForWidth() возвращает текущее состояние флага, указывающего на зависимость подсказки размера.

Используйте функцию expandingDirections(), чтобы определить, может ли связанный виджет использовать больше места, чем указано в функции sizeHint(), а также определить, в каких направлениях он может расширяться.

Наконец, класс QSizePolicy предоставляет операторы для сравнения этой политики изменения размера с заданной политикой, а также оператор QVariant для хранения этого QSizePolicy в виде объекта QVariant.

См. также QSize, QWidget::sizeHint(), QWidget::sizePolicy и QLayoutItem::sizeHint().

Документация по типам членов

Перечисление QSizePolicy::ControlTypeФлаги QSizePolicy::ControlTypes

Это перечисление определяет различные типы виджетов с точки зрения взаимодействия с макетом:

Постоянная Значение Описание
QSizePolicy::DefaultType 0x00000001 Тип по умолчанию, если не указан другой.
QSizePolicy::ButtonBox 0x00000002 Экземпляр QDialogButtonBox.
QSizePolicy::CheckBox 0x00000004 Экземпляр QCheckBox.
QSizePolicy::ComboBox 0x00000008 Экземпляр QComboBox.
QSizePolicy::Frame 0x00000010 Экземпляр QFrame.
QSizePolicy::GroupBox 0x00000020 Экземпляр QGroupBox.
QSizePolicy::Label 0x00000040 Экземпляр QLabel.
QSizePolicy::Line 0x00000080 Экземпляр QFrame с QFrame::HLine или QFrame::VLine.
QSizePolicy::LineEdit 0x00000100 Экземпляр QLineEdit.
QSizePolicy::PushButton 0x00000200 Экземпляр QPushButton.
QSizePolicy::RadioButton 0x00000400 Экземпляр QRadioButton.
QSizePolicy::Slider 0x00000800 Экземпляр QAbstractSlider.
QSizePolicy::SpinBox 0x00001000 Экземпляр QAbstractSpinBox.
QSizePolicy::TabWidget 0x00002000 Экземпляр QTabWidget.
QSizePolicy::ToolButton 0x00004000 Экземпляр QToolButton.

Этот перечисление был введён или изменён в Qt 4.3.

Тип ControlTypes — это синоним для QFlags<ControlType>. Он хранит логическое ИЛИ комбинацию значений ControlType.

См. также setControlType() и controlType().

перечисление QSizePolicy::Policy

Это перечисление описывает различные типы размеров по каждой размерности, используемые при создании QSizePolicy.

Постоянная Значение Описание
QSizePolicy::Fixed 0 QWidget::sizeHint() — единственное допустимое альтернативное значение, поэтому размер виджета не может увеличиваться или уменьшаться (например, вертикальное направление кнопки).
QSizePolicy::Minimum GrowFlag Размер sizeHint() минимален и достаточен. Виджет может быть расширен, но увеличение не принесёт преимуществ (например, горизонтальное направление кнопки). Он не может быть меньше, чем размер, предоставляемый sizeHint().
QSizePolicy::Maximum ShrinkFlag Размер sizeHint() является максимальным. Виджет может быть уменьшен на любую величину без ущерба, если другим виджетам необходимо это пространство (например, разделительная линия). Он не может быть больше размера, предоставляемого sizeHint().
QSizePolicy::Preferred GrowFlag | ShrinkFlag Размер sizeHint() — наилучший, но виджет может быть уменьшен и останется полезным. Виджет может использовать дополнительное пространство, поэтому он должен получить как можно больше места (политика по умолчанию для QWidget).
QSizePolicy::Expanding GrowFlag | ShrinkFlag | ExpandFlag Размер sizeHint() — разумный, но виджет может быть уменьшен и останется полезным. Виджет может использовать дополнительное пространство, поэтому он должен получить как можно больше места (например, горизонтальное направление горизонтального ползунка).
QSizePolicy::MinimumExpanding GrowFlag | ExpandFlag Размер sizeHint() минимален и достаточен. Виджет может использовать дополнительное пространство, поэтому он должен получить как можно больше места (например, горизонтальное направление горизонтального ползунка).
QSizePolicy::Ignored ShrinkFlag | GrowFlag | IgnoreFlag Размер sizeHint() игнорируется. Виджет получит как можно больше места.

См. также PolicyFlag, setHorizontalPolicy() и setVerticalPolicy().

перечисление QSizePolicy::PolicyFlag

Эти флаги объединяются для формирования различных значений Policy:

Постоянная Значение Описание
QSizePolicy::GrowFlag 1 Виджет может увеличиваться за пределы своего размера, если это необходимо.
QSizePolicy::ExpandFlag 2 Виджет должен получить как можно больше места.
QSizePolicy::ShrinkFlag 4 Виджет может уменьшаться ниже своего размера, если это необходимо.
QSizePolicy::IgnoreFlag 8 Размер виджета игнорируется. Виджет получит как можно больше места.

См. также Policy.

Документация по функциям-членам

QSizePolicy::QSizePolicy()

Создаёт объект QSizePolicy с горизонтальными и вертикальными политиками Fixed.

Политики могут быть изменены с помощью функций setHorizontalPolicy() и setVerticalPolicy(). Используйте функцию setHeightForWidth(), если предпочтительная высота виджета зависит от ширины виджета (например, QLabel с переходом на новую строку).

См. также setHorizontalStretch() и setVerticalStretch().

QSizePolicy::QSizePolicy(Policy horizontal, Policy vertical, ControlType type = DefaultType)

Создаёт объект QSizePolicy с заданными горизонтальными и вертикальными политиками и указанным типом управления.

Используйте setHeightForWidth(), если предпочтительная высота виджета зависит от ширины виджета (например, QLabel с переходом на новую строку).

Эта функция была добавлена в Qt 4.3.

См. также setHorizontalStretch(), setVerticalStretch() и controlType().

ControlType QSizePolicy::controlType() const

Возвращает тип управления, связанный с виджетом, для которого применяется эта политика размера.

Эта функция была добавлена в Qt 4.3.

См. также setControlType().

Qt::Orientations QSizePolicy::expandingDirections() const

Возвращает, может ли виджет использовать больше места, чем указано функцией QWidget::sizeHint().

Значение Qt::Horizontal или Qt::Vertical означает, что виджет может увеличиваться по горизонтали или вертикали (т.е. горизонтальная или вертикальная политика равна Expanding или MinimumExpanding), а Qt::Horizontal | Qt::Vertical означает, что он может увеличиваться по обеим осям.

См. также horizontalPolicy() и verticalPolicy().

bool QSizePolicy::hasHeightForWidth() const

Возвращает true если предпочтительная высота виджета зависит от его ширины; в противном случае возвращает false.

См. также setHeightForWidth().

bool QSizePolicy::hasWidthForHeight() const

Возвращает true если ширина виджета зависит от его высоты; в противном случае возвращает false.

См. также setWidthForHeight().

Policy QSizePolicy::horizontalPolicy() const

Возвращает горизонтальную составляющую политики размера.

См. также setHorizontalPolicy(), verticalPolicy() и horizontalStretch().

int QSizePolicy::horizontalStretch() const

Возвращает коэффициент растяжения по горизонтали для политики размера.

См. также setHorizontalStretch(), verticalStretch() и horizontalPolicy().

bool QSizePolicy::retainSizeWhenHidden() const

Возвращает значение, указывающее, нужно ли сохранять размер виджета при его скрытии. По умолчанию это false.

Функция была добавлена в Qt 5.2.

См. также setRetainSizeWhenHidden().

void QSizePolicy::setControlType(ControlType type)

Устанавливает тип управления, связанный с виджетом, для которого применяется эта политика размера, в type.

Тип управления определяет тип виджета, для которого применяется эта политика размера. Он используется некоторыми стилями, в частности QMacStyle, для вставки правильных отступов между виджетами. Например, в руководствах macOS Aqua указано, что кнопки должны быть разделены 12 пикселями, тогда как вертикально расположенные радиокнопки требуют только 6 пикселей.

Функция была добавлена в Qt 4.3.

См. также controlType() и QStyle::layoutSpacing().

void QSizePolicy::setHeightForWidth(bool dependent)

Устанавливает флаг, определяющий, зависит ли предпочтительная высота виджета от его ширины, в значение dependent.

См. также hasHeightForWidth() и setWidthForHeight().

void QSizePolicy::setHorizontalPolicy(Policy policy)

Устанавливает горизонтальную составляющую в заданную policy.

См. также horizontalPolicy(), setVerticalPolicy() и setHorizontalStretch().

void QSizePolicy::setHorizontalStretch(int stretchFactor)

Устанавливает коэффициент растяжения по горизонтали политики размера в заданное значение stretchFactor. stretchFactor должен быть в диапазоне [0,255].

Когда два виджета расположены рядом в горизонтальном макете, установка коэффициента растяжения по горизонтали виджета слева в 2, а виджета справа в 1 обеспечит, что виджет слева всегда будет в два раза больше, чем виджет справа.

См. также horizontalStretch(), setVerticalStretch() и setHorizontalPolicy().

void QSizePolicy::setRetainSizeWhenHidden(bool retainSize)

Устанавливает, сохранять ли размер виджета при его скрытии. Если retainSize true, макет не изменится при скрытии виджета.

Функция была добавлена в Qt 5.2.

См. также retainSizeWhenHidden().

void QSizePolicy::setVerticalPolicy(Policy policy)

Устанавливает вертикальную составляющую в заданную policy.

См. также verticalPolicy(), setHorizontalPolicy() и setVerticalStretch().

void QSizePolicy::setVerticalStretch(int stretchFactor)

Устанавливает коэффициент растяжения по вертикали политики размера в заданное значение stretchFactor. stretchFactor должен быть в диапазоне [0,255].

Когда два виджета расположены рядом в вертикальном макете, установка коэффициента растяжения по вертикали виджета сверху в 2, а виджета снизу в 1 обеспечит, что виджет сверху всегда будет в два раза больше, чем виджет снизу.

См. также verticalStretch(), setHorizontalStretch() и setVerticalPolicy().

void QSizePolicy::setWidthForHeight(bool dependent)

Устанавливает флаг, определяющий, зависит ли ширина виджета от его высоты, в значение dependent.

Это поддерживается только для подклассов QGraphicsLayout. Одновременное применение ограничений по высоте для ширины и ширине для высоты невозможно.

См. также hasWidthForHeight() и setHeightForWidth().

void QSizePolicy::transpose()

Меняет местами горизонтальную и вертикальную политики и коэффициенты растяжения.

См. также transposed().

QSizePolicy QSizePolicy::transposed() const

Возвращает объект политики размера с горизонтальной и вертикальной политиками и коэффициентами растяжения, поменянными местами.

Функция была добавлена в Qt 5.9.

См. также transpose().

Policy QSizePolicy::verticalPolicy() const

Возвращает вертикальную составляющую политики размера.

См. также setVerticalPolicy(), horizontalPolicy() и verticalStretch().

int QSizePolicy::verticalStretch() const

Возвращает коэффициент растяжения по вертикали для политики размера.

См. также setVerticalStretch(), horizontalStretch() и verticalPolicy().

QSizePolicy::operator QVariant() const

Возвращает QVariant, хранящий эту QSizePolicy.

bool QSizePolicy::operator!=(const QSizePolicy &other) const

Возвращает true, если эта политика отличается от other; в противном случае возвращает false.

См. также operator==().

bool QSizePolicy::operator==(const QSizePolicy &other) const

Возвращает true, если эта политика равна other; в противном случае возвращает false.

См. также operator!=().

Связанные нечлены

uint qHash(QSizePolicy key, uint seed = 0)

Возвращает значение хэша для key, используя seed для задания начального значения расчёта.

Функция была добавлена в Qt 5.6.

QDataStream &operator<<(QDataStream &stream, const QSizePolicy &policy)

Записывает размер policy в поток данных stream.

Функция была добавлена в Qt 4.2.

См. также Формат операторов QDataStream.

QDataStream &operator>>(QDataStream &stream, QSizePolicy &policy)

Читает размер policy из потока данных stream.

Функция была добавлена в Qt 4.2.

См. также Формат операторов QDataStream.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qsizepolicy.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API