QML-тип GridItem
Простой элемент в стиле ОС Аврора для создания интерактивных элементов сетки. Подробнее…
Строка импорта: | import Sailfish.Silica 1.0 |
Наследуется от: | BackgroundItem |
Свойства
- contentHeight : real
- highlighted : bool
- menu : var
- menuOpen : bool
- openMenuOnPressAndHold : bool
Методы
- animateRemoval(Item delegate)
- closeMenu()
- openMenu(object properties)
- remorseAction(string text, object action, int timeout)
- remorseDelete(object action, int timeout)
Подробное описание
Тип GridItem
предоставляет элемент ввода для сетки в стиле ОС Аврора с сенсорным взаимодействием и
дополнительными функциями, общими для элементов сетки. Он позволяет:
- показывать контекстное меню (задается в свойстве menu) при долгом нажатии на элемент списка;
- заменять собой элемент RemorseItem при вызове метода remorseAction() (обычно используется для отображения таймера удаления, когда пользователь вызывает команду удаления элемента из контекстного меню);
- запускать анимацию удаления при вызове метода animateRemoval().
Например:
import QtQuick 2.2
import Sailfish.Silica 1.0
import Nemo.Thumbnailer 1.0
SilicaGridView {
id: view
cellWidth: width/3
cellHeight: cellWidth // квадрат
delegate: GridItem {
function remove() {
remorseDelete(function() { view.model.remove(index) })
}
menu: Component {
ContextMenu {
MenuItem { text: "Редактировать" }
MenuItem {
text: "Удалить"
onClicked: remove()
}
}
}
Image {
source: "image://nemoThumbnail/" + model.url
fillMode: Image.PreserveAspectCrop
anchors.fill: parent
sourceSize { width: width; height: height }
z: -1
}
}
}
Примечание. GridItem
можно использовать в SilicaGridView или контейнере
Grid , но этот элемент не работает со стандартным Qt
Quick GridView. При использовании внутри
SilicaGridView размеры автоматически привязываются к параметрам cellWidth
и cellHeight
,
определёнными представлением.
Примечание: height
элемента GridItem
не должна изменяться, так как она увеличивается
автоматически при открытии меню. Вместо этого высоту следует задавать с помощью свойства
contentHeight.
См. также ListItem и BackgroundItem.
Описание свойств
contentHeight : real
Задает значение высоты делегата. При открытии контекстного меню ContextMenu высота делегата может
увеличиваться, но высота содержимого по-прежнему будет соответствовать значению свойства contentHeight
.
Значение по умолчанию соответствует GridView.cellHeight.
highlighted : bool
При истинном значении свойства highlighted
содержимое должно быть выделено другим цветом. Данное свойство истинно
при истинном значении свойства down либо при открытом меню.
Дополнительную информацию об оформлении интерактивных элементов управления в ОС Аврора можно получить в описании типа Theme.
См. также BackgroundItem::highlighted.
menu : var
Содержит контекстное меню ContextMenu, которое открывается при долгом нажатии.
Это свойство может быть задано как значение типа Component с элементом верхнего уровня ContextMenu или как предварительно созданный объект ContextMenu. Если предоставлен тип Component, то контекстное меню ContextMenu может быть создано или удалено по мере необходимости. В большинстве случаев предпочтение следует отдавать использованию типа Component, чтобы избежать ненужной загрузки меню.
[read-only] menuOpen : bool
Истинно, когда меню, заданное свойством menu, открыто.
openMenuOnPressAndHold : bool
При истинном значении данного свойства долгое нажатие на элемент разрешает открытие меню, заданное свойством menu.
Значение по умолчанию: true
.
Описание методов
animateRemoval(Item delegate)
Создаёт и запускает анимацию RemoveAnimation. Если GridItem
не является
Item
верхнего уровня делегата, delegate должен быть установлен как Item
верхнего уровня.
Анимация объекта с помощью метода animateRemoval()
позволяет избежать создания
RemoveAnimation в делегате.
См. также RemoveAnimation.
closeMenu()
Скрывает отображаемое в данный момент меню.
openMenu(object properties)
Отображает меню, заданное свойством menu.
С помощью необязательного параметра properties указываются набор пар ключ-значение, которые будут заданы меню.
remorseAction(string text, object action, int timeout)
Создаёт RemorseItem с text и устанавливает действие обратного вызова action. Аргумент timeout является необязательным и по умолчанию равен 4 секундам, если он не задан.
Наиболее распространённым вариантом использования элемента с возможностью отмены является удаление элемента. В этом
случае можно опустить параметр text
и вместо него использовать функцию
remorseDelete().
text должен содержать глагол, описывающий совершаемое действие. Следует использовать прошедшее время, чтобы яснее указать, что от пользователя не требуется никаких дополнительных шагов, если он не хочет отменить действие. Например, элемент, который раньше выводил текст «Очистка данных», теперь будет отображать «Данные очищены».
С точки зрения функциональности элементы, позволяющие отменять действия, работают как раньше.
Возвращает созданный экземпляр RemorseItem, который будет уничтожен автоматически после выполнения или отмены действия.
remorseDelete(object action, int timeout)
Создаёт экземпляр элемента RemorseItem и задаёт функцию обратного вызова для обработки действия action. Аргумент timeout не является обязательным и по умолчанию будет равен 4 секундам, если он не задан.
Возвращает созданный экземпляр RemorseItem, который будет уничтожен автоматически после выполнения или отмены действия.