Описание класса QGraphicsLayout
|
Функция | Описание |
---|---|
QGraphicsLayoutItem::setGeometry() | Уведомляет вас когда устанавливается геометрия компоновщика. В переопределении этой функции вы можете сохранить геометрию в вашем классе компоновщика. |
QGraphicsLayoutItem::sizeHint() | Возвращает подсказки о размере компоновщика. |
QGraphicsLayout::count() | Возвращает число элементов в компоновщике. |
QGraphicsLayout::itemAt() | Возвращает указатель на элемент в вашем компоновщике. |
QGraphicsLayout::removeAt() | Удаляет элемент из вашего компоновщика не уничтожая его. |
За подробностями о переопределении каждой функции обратитесь к документации по каждой из них.
Каждый компоновщик определяет собственный API для упорядочивания виджетов и компоновщиков. Например, для сетки вы требуете индекс строки и столбца, и дополнительно протяжённость по строкам и столбцам, выравниваем, отступом и так далее. В линейном компоновщике требуется один индекс строки или столбца для расположения его элементов. Для сетки порядок вставки элементов никак не влияет на компоновку, но для линейного компоновщика порядок очень важен. При написании собственного подкласса компоновщика, вы вольны выбирать API который лучше всего подходит для вашего компоновщика.
Когда изменяется геометрия компоновщика, QGraphicsLayout немедленно переупорядочивает все управляемые им элементы вызывая у каждого setGeometry(). Это переупорядочивание называется активацией компоновщика.
QGraphicsLayout обновляет собственную геометрию для соответствия с contentsRect() управляемого им QGraphicsLayoutItem. Таким образом, он будет автоматически переупорядочивать все свои элементы при изменении размера виджета. QGraphicsLayout кэширует размеры всех управляемых им элементов чтобы не вызывать setGeometry() слишком часто.
Замечание: QGraphicsLayout всегда будет иметь такую же геометрию как и contentsRect() виджета (не компоновщика) которому он назначен.
Компоновщик может быть активирован явно одним из двух способов: вызвав activate() или вызвав invalidate(). Вызов activate() немедленно активирует компоновщик. В отличие от него, вызов invalidate() будет отложен, так как он отправляет событие LayoutRequest управляемому виджету. Из-за уплотнения событий функция activate() будет вызвана только после возвращения управления в цикл событий. Это относится к признанию компоновщика недействительным. Признание компоновщика недействительным также делает недействительной любую кэшированную информацию. Также, функция invalidate() является виртуальной. Таким образом, переопределив эту функцию в подклассе QGraphicsLayout, вы можете признавать собственный кэш недействительным.
QGraphicsLayout слушает события управляемого им виджета с помощью виртуального обработчика событий widgetEvent(). Когда компоновщика назначается виджету, все события, доставляемые виджету, сначала обрабатываются widgetEvent(). Это позволяет компоновщику узнавать от любом важном изменении состояния виджета, таких как изменение видимости или направления компоновщика.
Поля QGraphicsLayout могут быть изменены переопределением функций setContentsMargins() и getContentsMargins().
Создаёт объект QGraphicsLayout.
parent передаётся в конструктор QGraphicsLayoutItem, а параметр QGraphicsLayoutItem isLayout устанавливается равным true.
Уничтожает объект QGraphicsLayout.
Активирует компоновщик, заставляя немедленно переупорядочиться все элементы в компоновке. Эта функция основывается на вызовах count() и itemAt(), а затем вызове setGeometry() последовательно для всех элементов. При активации компоновщик настроит свою геометрию в соответствии с родительским contentsRect(). Затем родитель признает все свои компоновщики недействительными.
Если вызывается последовательно или рекурсивно, например, в ответ на изменение размера одного из упорядоченных элементов, то эта функция ничего не будет делать.
Заметьте, что компоновщик может свободно использовать кэширование геометрии, для оптимизации этого процесса. Для принудительного признания любого подобного кэша недействительным, вы можете вызвать invalidate() перед вызовом activate().
Смотрите также invalidate().
Эта чисто виртуальная функция должна быть переопределена в подклассе QGraphicsLayout для возвращения количества элементов в компоновке.
Подкласс свободен решать как хранить элементы.
Смотрите также itemAt() и removeAt().
Очищает любую кэшируемую геометрию и информацию о подсказках о размере в компоновке и отправляет событие LayoutRequest управляемому родителю QGraphicsLayoutItem.
Смотрите также activate() и setGeometry().
Возвращает true если компоновщик в настоящее время является активированным; в противном случае возвращает false. Если компоновщик активирован, это значит что он в настоящее время находится в процессе переупорядочивания своих элементов (т.е., функция activate() была вызвана и еще не вернула управление).
Смотрите также activate() и invalidate().
Эта чисто виртуальная функция должна быть переопределена в подклассе QGraphicsLayout для возвращения указателя на элемент с индексом i. Переопределение может подразумевать что i валиден (т.е., он представляет значение count()).
Подкласс свободен решать как хранить элементы.
Смотрите также count() и removeAt().
Чистая виртуальная функция должна быть переопределена в подклассе QGraphicsLayout для удаления элемента index. Переопределение может подразумевать что index валиден (т.е., он представляет значение count()).
Реализация должна гарантировать, что parentLayoutItem() для удаленного элемента не указывает на эту компоновку, поскольку элемент считается удалённым из иерархии компоновки.
Если компоновка будет повторно использована приложениями, мы рекомендуем чтобы компоновка удаляла элемент, а каркас графического представления не зависел от этого.
Подкласс свободен решать как хранить элементы.
Смотрите также itemAt() и count().
Устанавливает значение полей равными left, top, right и bottom. Значения полей по-умолчанию для компоновщиков верхнего уровня зависят от стиля (запрашивая pixelMetric для QStyle::PM_LayoutLeftMargin, QStyle::PM_LayoutTopMargin, QStyle::PM_LayoutRightMargin и QStyle::PM_LayoutBottomMargin).
Для компоновщиков нижнего уровня поля по-умолчанию равны 0.
Изменение значения полей автоматически признаёт компоновщик недействительным.
Смотрите также invalidate().
Этот виртуальный обработчик событий получает все события для управляемого виджета. QGraphicsLayout использует этот обработчик событий для прослушивания важных для компоновщика событий, таких как изменение геометрии, изменение компоновки или изменением направления компоновки.
e это указатель на событие.
Вы можете переопределить этот обработчик событий для отслеживания похожих событий для ваших компоновщиков.
Смотрите также QGraphicsWidget::event() и QGraphicsItem::sceneEvent().
Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies) | Торговые марки | Qt 4.5.3 |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |