Описание класса QLayoutКласс QLayout - это базовый класс для менеджеров компоновки (компоновщиков). Далее... #include <QLayout> Унаследован от: QObject и QLayoutItem. От него наследуются: QBoxLayout, QFormLayout, QGridLayout и QStackedLayout. Открытые типы
Свойства
Открытые функции
Переопределённые открытые функции
Статические открытые члены
Защищенные функции
Переопределённые защищённые функции
Дополнительные унаследованные членыПодробное описаниеКласс QLayout - это базовый класс для менеджеров компоновки (компоновщиков). Это абстрактный базовый класс, от которого наследуются конкретные классы QBoxLayout, QGridLayout, QFormLayout и QStackedLayout. Для пользователей подклассов QLayout'а или QMainWindow редко возникает необходимость использовать базовые функции предоставляемые классом QLayout такие, как setSizeConstraint() или setMenuBar(). Для получения дополнительной информации смотрите Управление компоновкой. Чтобы создать собственный компоновщик, реализуйте функции addItem(), sizeHint(), setGeometry(), itemAt() и takeAt(). Вы должны также реализовать функцию minimumSize(), чтобы гарантировать, что ваш компоновщик не уменьшается до нулевого размера, в случае если места слишком мало. Чтобы поддержать дочерние виджеты, высота которых зависит от их ширины, реализуйте функцию hasHeightForWidth() и heightForWidth(). Для получения дополнительной информации о реализации пользовательских компоновщиков смотрите примеры Border Layout и Flow Layout. Управление компоновкой прекращается, когда компоновщик удаляется. Смотрите также QLayoutItem, Управление компоновкой, Пример "Basic Layouts", Пример "Border Layout" и Пример "Flow Layout". Описание типов-членовenum QLayout::SizeConstraintВозможные значения:
Смотрите также setSizeConstraint(). Описание свойствsizeConstraint : SizeConstraintЭто свойство содержит режим изменения размера компоновщика. Режим по умолчанию равен SetDefaultConstraint. Функции доступа:
spacing : intЭто свойство содержит интервал (шаг) между виджетами внутри компоновщика. Если значение не установлено явно, то интервал компоновщика наследуется от родительского компоновщика, или из настроек стиля для родительского виджета. Для компоновщиков QGridLayout и QFormLayout, можно устанавливать разные горизонтальные и вертикальные интервалы, используя функции setHorizontalSpacing() и setVerticalSpacing(). В этом случае, функция spacing() вернёт -1. Функции доступа:
Смотрите также contentsRect(), getContentsMargins(), QStyle::layoutSpacing() и QStyle::pixelMetric(). Описание функций-членовQLayout::QLayout ( QWidget * parent )конструирует новый QLayout верхнего уровня, с родителем parent. parent не может быть 0. Для виджета может быть только один компоновщик верхнего уровня. Он возвращается функцией QWidget::layout(). QLayout::QLayout ()Конструирует новый дочерний QLayout. Этот компоновщик должен быть вставлен в другой компоновщик до того, как управление компоновкой начнёт работать. bool QLayout::activate ()Повторно выполняет компоновку для parentWidget(), если необходимо. Обычно, вы не нуждаетесь в вызове этой функции, потому что она автоматически вызывается в большинстве соответствующих случаев. Она вернёт true, если компоновка выполнилась повторно. Смотрите также update() и QWidget::updateGeometry(). void QLayout::addChildLayout ( QLayout * l ) [protected]Эта функция вызывается в подклассе из функции addLayout() или insertLayout(), чтобы добавить компоновщик l в качестве вложенного. Единственный сценарий, в котором вам нужно вызвать её напрямую - это, если вы реализуете пользовательский компоновщик, который поддерживает вложенные. Смотрите также QBoxLayout::addLayout(), QBoxLayout::insertLayout() и QGridLayout::addLayout(). void QLayout::addChildWidget ( QWidget * w ) [protected]Эта функция вызывается в подклассе из функции addWidget(), чтобы добавить w в качестве управляемого компоновщиком виджета. Если w уже управляется компоновщиком, то эта функция подаст предупреждение и удалит w из этого компоновщика. Следовательно, эта функция должна быть вызвана перед добавлением w в структуру данных компоновщика. void QLayout::addItem ( QLayoutItem * item ) [pure virtual]Реализуется в подклассе, чтобы добавить item. Как происходит добавление, определяется в конкретном подклассе. Эта функция, обычно, не вызывается из кода приложения. Чтобы добавить виджет в компоновщик, используйте функцию addWidget(); чтобы добавить дочерний компоновщик, используйте функцию addLayout(), предоставляемую связанным подклассом QLayout'а. Замечание: Владение элементом item передаётся компоновщику, и компоновщик отвечает за его удаление. Смотрите также addWidget(), QBoxLayout::addLayout() и QGridLayout::addLayout(). void QLayout::addWidget ( QWidget * w )Добавляет виджет w в этот компоновщик, и способом, зависящим от компоновщика. Эта функция используется функцией addItem(). QRect QLayout::alignmentRect ( const QRect & r ) const [protected]Возвращает охватывающий прямоугольник, когда геометрия этого компоновщика устанавливается в r, при условии, что этот компоновщик поддерживает setAlignment(). Результат получается из sizeHint() и expanding(). Он ни когда не превышает r. void QLayout::childEvent ( QChildEvent * e ) [virtual protected]Переопределено из QObject::childEvent(). QSize QLayout::closestAcceptableSize ( const QWidget * widget, const QSize & size ) [static]Возвращает размер, который удовлетворяет всем ограничениям на размер widget'а, включая heightForWidth() и, который настолько ближе к size насколько это возможно. QMargins QLayout::contentsMargins () constВозвращает поля (margins) используемые вокруг компоновки. По умолчанию QLayout использует значения, предоставляемые стилями. На большинстве платформ, поле равно 11 пикселям во всех направлениях. Эта функция была введена в Qt 4.6. Смотрите также setContentsMargins(). QRect QLayout::contentsRect () constВозвращает прямоугольник geometry() компоновщика, но с учётом полей (margins) содержимого. Эта функция была введена в Qt 4.3. Смотрите также setContentsMargins() и getContentsMargins(). int QLayout::count () const [pure virtual]Должен быть реализован в подклассе, чтобы вернуть количество элементов в компоновщике. Смотрите также itemAt(). Qt::Orientations QLayout::expandingDirections () const [virtual]Переопределено из QLayoutItem::expandingDirections(). Возвращает, может ли этот компоновщик использовать больше места, чем возвращает функция sizeHint(). Значения Qt::Vertical или Qt::Horizontal означают, что он желает увеличиваться только в одном измерении, тогда как Qt::Vertical | Qt::Horizontal означает, что он желает увеличиваться в обоих измерениях. Реализация по умолчанию возвращает Qt::Horizontal | Qt::Vertical. Подклассы переопределяют его, чтобы вернуть наиболее значимую величину, основанную на политике размеров их дочерних виджетов. Смотрите также sizeHint(). QRect QLayout::geometry () const [virtual]Переопределено из QLayoutItem::geometry(). Смотрите также setGeometry(). void QLayout::getContentsMargins ( int * left, int * top, int * right, int * bottom ) constИзвлекает левое, верхнее, правое, и нижнее поля (margins) использованные вокруг компоновщика, и присваивает их аргументам *left, *top, *right, и *bottom (если они не нулевые указатели). По умолчанию QLayout использует значения, предоставляемые стилями. На большинстве платформ, поле равно 11 пикселям во всех направлениях. Эта функция была введена в Qt 4.3. Смотрите также setContentsMargins(), QStyle::pixelMetric(), PM_LayoutLeftMargin, PM_LayoutTopMargin, PM_LayoutRightMargin и PM_LayoutBottomMargin. int QLayout::indexOf ( QWidget * widget ) const [virtual]Ищет виджет widget в этом компоновщике (исключая дочерние компоновщики). Возвращает индекс widget'а, либо -1 если widget не найден. Реализация по умолчанию обходит все элементы, используя функцию itemAt() void QLayout::invalidate () [virtual]Переопределено из QLayoutItem::invalidate(). bool QLayout::isEmpty () const [virtual]Переопределено из QLayoutItem::isEmpty(). bool QLayout::isEnabled () constВозвращает true, если компоновщик разрешён; в противном случае возвращает false. Смотрите также setEnabled(). QLayoutItem * QLayout::itemAt ( int index ) const [pure virtual]Должно быть реализовано в подклассах, чтобы вернуть элемент компоновки в позиции с индексом index. если не существует такого элемента, то функция должна вернуть 0. Элементы нумеруются последовательно начиная с 0. Если элемент удалён, то другие элементы будут перенумерованы. Эта функция может быть использована, чтобы обойти весь компоновщик. Следующий код нарисует прямоугольник для каждого элемента компоновщика в структуре компоновки виджета. static void paintLayout(QPainter *painter, QLayoutItem *item) { QLayout *layout = item->layout(); if (layout) { for (int i = 0; i < layout->count(); ++i) paintLayout(painter, layout->itemAt(i)); } painter->drawRect(item->geometry()); } void MyWidget::paintEvent(QPaintEvent *) { QPainter painter(this); if (layout()) paintLayout(&painter, layout()); } Смотрите также count() и takeAt(). QLayout * QLayout::layout () [virtual]Переопределено из QLayoutItem::layout(). QSize QLayout::maximumSize () const [virtual]Переопределено из QLayoutItem::maximumSize(). Возвращает максимальный размер этого компоновщика. Это наибольший размер, который может иметь компоновщик, по прежнему соответствуя спецификации (определению). Возвращаемое значение не включает пространство требуемое функцией QWidget::setContentsMargins() или menuBar(). Реализация по умолчанию допускает неограниченное изменение размеров. QWidget * QLayout::menuBar () constВозвращает панель меню, установленную для этого компоновщика, или 0, если панель меню не установлена. Смотрите также setMenuBar(). QSize QLayout::minimumSize () const [virtual]Переопределено из QLayoutItem::minimumSize(). Возвращает минимальный размер этого компоновщика. Это наименьший размер, который может иметь компоновщик, по прежнему соответствуя спецификации (определению). Возвращаемое значение не включает пространство требуемое функцией QWidget::setContentsMargins() или menuBar(). Реализация по умолчанию допускает неограниченное изменение размеров. QWidget * QLayout::parentWidget () constВозвращает родительский виджет этого компоновщика, или 0, если этот компоновщик не установлен ни для одного виджета. Если компоновщик - подкомпоновщик, эта функция возвращает родительский виджет родительского компоновщика. Смотрите также parent(). void QLayout::removeItem ( QLayoutItem * item )Удаляет элемент компоновщика item из этого компоновщика. Вызывающий ответственен за удаление элемента. Заметьте, что item может быть компоновщиком (т.к. QLayout унаследован от QLayoutItem). Смотрите также removeWidget() и addItem(). void QLayout::removeWidget ( QWidget * widget )Удаляет виджет widget из компоновщика. После вызова этой функции, вызывающий ответственен за установку виджету приемлемой геометрии или помещение виджета обратно в компоновщик. Замечание: Владельцем widget'а остаётся тот же, что и при его добавлении. Смотрите также removeItem(), QWidget::setGeometry() и addWidget(). bool QLayout::setAlignment ( QWidget * w, Qt::Alignment alignment )Устанавливает выравнивание для виджета w равным alignment и возвращает true если виджет w найден в этом компоновщике (исключая дочерние компоновщик); в противном случае возвращает false. void QLayout::setAlignment ( Qt::Alignment alignment )Устанавливает выравнивание этого элемента равным alignment. Смотрите также QLayoutItem::setAlignment(). bool QLayout::setAlignment ( QLayout * l, Qt::Alignment alignment )Это перегруженная функция. Устанавливает выравнивание для компоновщика l равным alignment и возвращает true если компоновщик l найден в этом компоновщике (исключая дочерние компоновщик); в противном случае возвращает false. void QLayout::setContentsMargins ( int left, int top, int right, int bottom )Устанавливает левое, верхнее, правое, и нижнее поля, для использования вокруг компоновщика. По умолчанию QLayout использует значения, предоставляемые стилями. На большинстве платформ, поле равно 11 пикселям во всех направлениях. Эта функция была введена в Qt 4.3. Смотрите также contentsMargins(), getContentsMargins(), QStyle::pixelMetric(), PM_LayoutLeftMargin, PM_LayoutTopMargin, PM_LayoutRightMargin и PM_LayoutBottomMargin. void QLayout::setContentsMargins ( const QMargins & margins )Устанавливает margins для использования вокруг компоновки. По умолчанию QLayout использует значения, предоставляемые стилями. На большинстве платформ, поле равно 11 пикселям во всех направлениях. Эта функция была введена в Qt 4.6. Смотрите также contentsMargins(). void QLayout::setEnabled ( bool enable )Разрешает этот компоновщик, если enable равен true, в противном случае запрещает его. Разрешённый компоновщик подстраивается автоматически к изменениям; запрещённый компоновщик действует, как если бы он отсутствовал. По умолчанию все компоновщики разрешены. Смотрите также isEnabled(). void QLayout::setGeometry ( const QRect & r ) [virtual]Переопределено из QLayoutItem::setGeometry(). Смотрите также geometry(). void QLayout::setMenuBar ( QWidget * widget )Указывает компоновщику разместить панель меню widget сверху parentWidget(), снаружи QWidget::contentsMargins(). Все дочерние виджеты помещаются под нижнем краем панели меню. Смотрите также menuBar(). QLayoutItem * QLayout::takeAt ( int index ) [pure virtual]Должно быть реализовано в подклассах, чтобы удалить элемент компоновки, в позиции с индексом index, из компоновщика, и вернуть его. Если нет такого элемента, то функция ничего не должна делать и должна вернуть 0. Элементы нумеруются последовательно начиная с 0. Если элемент удалён, то другие элементы будут перенумерованы. Следующий фрагмент кода показывает безопасный способ удаления всех элементов из компоновщика: QLayoutItem *child; while ((child = layout->takeAt(0)) != 0) { ... delete child; } Смотрите также itemAt() и count(). void QLayout::update ()Обновляет компоновщик для parentWidget(). Обычно, вы не нуждаетесь в вызове этой функции, потому что она автоматически вызывается в большинстве соответствующих случаев. Смотрите также activate() и invalidate(). |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |