Home · All Classes · Main Classes · Grouped Classes · Modules · Functions |
Класс QAbstractItemView обеспечивает базовую функциональность классов отображения записей. Далее...
#include <QAbstractItemView>
Наследует QAbstractScrollArea.
Наследуется QHeaderView, QListView, QTableView и QTreeView.
|
|
Класс QAbstractItemView обеспечивает базовую функциональность классов отображения записей.
Класс QAbstractItemView является базовым классом для каждого стандартного класса отображения, используемого QAbstractItemModel. QAbstractItemView - это абстрактный класс, и экземпляр его не может быть создан. Он предоставляет стандартный интерфейс для взаимодействия между моделиям с помощью механизма сигналов и слотов, доступным подклассам, которые будут поддерживать его на высоком уровне в зависимости от модели. Данный класс предоставляет поддержку для управления с помощью клавиатуры и мыши, прокрутки изображения, редактирования записей и выбора.
Класс QAbstractItemView - это один из Классов Модель/Представление и часть каркаса модель/представление Qt.
Классы представления, наследующие QAbstractItemView, должны лишь реализовать свои функциональные особенности определенные представлением, такие как: отображение записей, возращение геометрии записей, поиск записей и т.д.
QAbstractItemView предоставляет общие слоты, такие как edit() и setCurrentIndex(). Также предоставляется множество защищенных слотов, включая dataChanged(), rowsInserted(), rowsAboutToBeRemoved(), columnsInserted(), columnsRemoved(), selectionChanged() и currentChanged().
Корневую запись можно получить с помощью rootIndex(), а текущую с помощью currentIndex(). Гарантировать, что запись стала видимой, можно с помощью scrollTo().
Некоторые из функций QAbstractItemView требуются для прокручивания, например setHorizontalFactor() и setVerticalFactor(). Другие функции необходимы для контроля выбора; например, setSelectionMode() и setSelectionBehavior(). Данный класс предоставляет модель по умолчанию для работы с выбором (selectionModel()), но она может быть переназначена с помощью setSelectionModel() с реализацией QItemSelectionModel.
При реализации отображения, содержащего полосу прокрутки, Вам, возможно, захочется перегрузить resizeEvent для установки диапазона полосы прокрутки, так, чтобы она правильно отобразилась, например:
horizontalScrollBar()->setRange(0, realWidth - width());
Обратите внимание на то, что QAbstractScrollView само включает/выключает полосы прокрутки в зависимости от пространства, на котором оно отображается. Полосы прокрутки должны быть вручную включены, если это требуется.
Для полного контроля над отображением и редактированием записей, Вы можете определить делегата с помощью setItemDelegate().
QAbstractItemView предоставляет множество защищенных функций. Некоторые из них нужны для редактирования записей, например, edit() и commitData(), другие - для обработки сообщений клавиатуры и мыши.
См. также Программирование Модель/Представление и QAbstractItemModel.
Данное перечисление определяет различные способы навигации между записями.
Константа | Значение | Описание |
---|---|---|
QAbstractItemView::MoveUp | 0 | Перемещение к записи, расположенной выше текущей записи. |
QAbstractItemView::MoveDown | 1 | Перемещение к записи, расположенной ниже текущей записи. |
QAbstractItemView::MoveLeft | 2 | Перемещение к записи, расположенной левее текущей записи. |
QAbstractItemView::MoveRight | 3 | Перемещение к записи, расположенной правее текущей записи. |
QAbstractItemView::MoveHome | 4 | Перемещение к записи, расположенной в верхнем-левом углу. |
QAbstractItemView::MoveEnd | 5 | Перемещение к записи, расположенной в правом-нижнем углу. |
QAbstractItemView::MovePageUp | 6 | Перемещение на одну страницу вверх от текущей записи. |
QAbstractItemView::MovePageDown | 7 | Перемещение на одну страницу вниз от текущей записи. |
QAbstractItemView::MoveNext | 8 | Перемещение к следующей, по отношению к текущей, записи. |
QAbstractItemView::MovePrevious | 9 | Перемещение к предыдущей, по отношению к текущей, записи. |
См. также moveCursor().
Данное перечисление описывает действия инициирующие редактировании записи.
Константа | Значение | Описание |
---|---|---|
QAbstractItemView::NoEditTriggers | 0 | Нельзя редактировать. |
QAbstractItemView::CurrentChanged | 1 | Редактирование начинается всякий раз при смене текущей записи. |
QAbstractItemView::DoubleClicked | 2 | Редактирование начинается по двойному щелчку. |
QAbstractItemView::SelectedClicked | 4 | Редактирование начинается при щелчке мышью по уже выделенной записи. |
QAbstractItemView::EditKeyPressed | 8 | Редактирование начинается при нажатии клавиши редактирования на записи. |
QAbstractItemView::AnyKeyPressed | 16 | Редактирование начинается при нажатии любой клавиши на записи. |
QAbstractItemView::AllEditTriggers | 31 | Редактирование начинается при совершении любого из вышеприведенных действий. |
Тип EditTriggers - это typedef для QFlags<EditTrigger>. Он содержит комбинацию ИЛИ значений EditTrigger.
CКонстанта | Значение | Описание |
---|---|---|
QAbstractItemView::EnsureVisible | 0 | Прокрутить с целью обеспечения гарантии, что элемент видим на экране. |
QAbstractItemView::PositionAtTop | 1 | Прокрутить с целью перемещения записи неверх области отображения. |
QAbstractItemView::PositionAtBottom | 2 | Прокрутить с целью перемещения записи вниз области отображения. |
Константа | Значение | Описание |
---|---|---|
QAbstractItemView::SelectItems | 0 | Выделение единичных записей. |
QAbstractItemView::SelectRows | 1 | Выделение исключительно строк. |
QAbstractItemView::SelectColumns | 2 | Выделение исключительно столбцов. |
Данное перечисление указывает, как представление реагирует на выделение пользователем записей:
Константа | Значение | Описание |
---|---|---|
QAbstractItemView::SingleSelection | 1 | При выборе пользователем записи, другая запись (выбранная в этот момент) становится не выбранной, и пользователь не может отменить выделение выбранной записи. |
QAbstractItemView::ContiguousSelection | 4 | Если пользователь выделяет элемент обычным способом, то выделение с текущего выделенного элемента снимается и выделяется новый элемент. Однако, если пользователь при щелчке мышью на элементе нажимает клавишу Shift, то выделяются (или теряют выделение в зависимости от состояния элемента, на котором щелкают мышью) все элементы от выделенного в настоящим момент, до элемента, на котором произведен щелчек мышью. |
QAbstractItemView::ExtendedSelection | 3 | При выборе пользователем записи обычным способом, выделение всех ранее выбранных записей отменяется и становится выделенной вновь выбранная запись. Обычно, если пользователь нажал клавишу Ctrl при щелчке мышью на записи, ее выделение изменяется, а все другие записи остаются не тронутыми. Если пользователь нажал клавишу Shift при щелчке мышью на записи, все записи, расположенные между текущей записью и той, на которой щелкнуль мышью, становятся выделенными, или их выделение отменяется. Несколько записей могут быть выделены с помощью перемещения над ними указателя мыши при нажатой кнопке мыши. |
QAbstractItemView::MultiSelection | 2 | При выборе пользователем записи обычным способом, ее выделение изменяется, а выделение других записей не меняется. |
QAbstractItemView::NoSelection | 0 | Записи не могут быть выделены. |
Наиболее часто используемые режимы - это SingleSelection и ExtendedSelection.
Данное перечисление описывает состояния, в которых может находиться представление. Обычно, это перечисление нужно, если Вы реализуете собственное представление.
Константа | Значение | Описание |
---|---|---|
QAbstractItemView::NoState | 0 | Состояние по умолчанию. |
QAbstractItemView::DraggingState | 1 | Пользователь перетаскивает запись. |
QAbstractItemView::DragSelectingState | 2 | Пользователь выделяет записи. |
QAbstractItemView::EditingState | 3 | Пользователь редактирует запись в виджете-редакторе. |
QAbstractItemView::ExpandingState | 4 | Пользователь открывает набор записей. |
QAbstractItemView::CollapsingState | 5 | Пользователь закрывает набор записей. |
Данное свойство указывает, использующся ли чередующиеся цвета при рисовании фона.
Если данное свойство равно true, то при рисовании фона записи будут использованы цвета QPalette::Base и QPalette::AlternateBase; в противном случае фон будет нарисован с использованием цвета QPalette::Base.
По умолчанию данное свойство равно false.
Функции доступа:
Данное свойство указывает, позволено ли автопрокручивание при перетаскивании.
Если данное свойство равно true (по умолчанию), то QAbstractItemView автоматически прокручивает содержимое когда перетаскиваемый объект приближается на 16 пикселей к крыю области отображения. Это будет работать только в областях отображения позволяющих перетаскивание в них. Для отключения автопрокручивания данное свойство нужно установить в false.
Функции доступа:
Данное свойство указывает, позволяет ли представление перетаскивание своих записей.
Функции доступа:
Данное свойство указывает, какие действия приводят к началу редактирования записи.
Данное свойство является набором флагов, заданных в EditTrigger, объединенных с использованием оператора ИЛИ. Представление запустит редактирование только в том случае, если содершаемое действие указано в данном свойстве.
Функции доступа:
Данное свойство содержит размер записи.
Изменение данного свойства в то время, когда отображение видимо, приведет к перераспределению записей.
Функции доступа:
Данное свойство указывает, поведение отображения при выборе записей.
Свойство указывает, выделяются ли единичные записи, столбцы, или колонки.
Функции доступа:
См. также SelectionMode и SelectionBehavior.
Данное свойство указывает режим, в котором работает представление при выборе записей.
Свойство указывает, может ли пользователь выбирать одну запись или несколько, и при выборе нескольких записей, должны ли эти записи располагаться непрерывным блоком.
Функции доступа:
См. также SelectionMode и SelectionBehavior.
Данное свойство указывает, отображается ли индикатор перетаскивания при перетаскивании записей.
Функции доступа:
Данное свойство указывает, доступна ли навигация между записями с помощью клавиш табуляции.
Функции доступа:
Данное свойство содержит расположение "..." в тексте, не вмещающимся в отведенную ему область.
Функции доступа:
Создает абстрактный элемент представления с родителем parent.
Разрушает представление.
Данный сигнал испускается, когда запись с индексом index активизируется пользователем (например, с помощью одинарного или двойного щелчка мышью на записи, в зависимости от платформы).
См. также clicked(), doubleClicked(), entered() и pressed().
Снимает выделение со всех записей.
Данный сигнал испускается при нажатии кнопки мыши. Элемент, на котором щелкнули мышью, определяется с помощью индекса index. Данный сигнал испускается только в том случае, если индекс валиден.
См. также activated(), doubleClicked(), entered() и pressed().
Закрывает редактор editor и освобождает его. hint используется для задания реакции представления на окончание редактирования. Например, можно указать, что должна быть открыта для редактирования следующая запись.
См. также edit().
Закрывает постоянный редактор у записи с номером index.
Передает данные из редактора editor в модель.
См. также closeEditor().
Данный слот вызывается при смене текущего элемента. Предыдущий текущий элемент задается индексом previous, а новая текущая запись индексом current.
Если Вы хотите иметь информацию об изменении элемента, см. сигнал dataChanged().
Возвращает индекс в модели текущего элемента.
См. также setCurrentIndex().
Данный слот вызывается при изменении элементов в модели. Изменяемые элементы - это элементы, расположенные от topLeft до bottomRight включительно. topLeft == bottomRight означает, что изменилась одна запись.
Возвращает сдвиг отображаемой области в представлении.
Если Вы используете scrollDirtyRegion() и реализуете paintEvent() в подклассе QAbstractItemView, то Вы должны перевести область, полученную в сообщении рисования, в область представления с помощью сдвига, возвращенного данной функцией.
См. также scrollDirtyRegion() и setDirtyRegion().
Данный сигнал испускается при двойном щелчке кнопкой мыши. Элемент, на котором совершен двойной щелчок, определяется индексом index. Данный сигнал испускается только в том случае, если индекс валиден.
Данная функция вызывается с сообщением event, когда операция drag-and-drop попадает в пределы виджета. Если перетаскивание происходит над областью, где можно что либо положить (например, над виджетом, допускающим перетаскивание в себя), то сообщение принимается; в противном случае игнорируется.
Повторно реализовано по отношению к QWidget.
См. также dropEvent() и startDrag().
Данная функция вызывается, когда перетаскиваемый объект покидает пределы представления. event описывает состояние процесса drag-and-drop.
Повторно реализовано по отношению к QWidget.
Эта функция непрерывно вызывается с сообщением event во время всего процесса drag-and-drop над виджетом. Это может использоваться для прокрутки представления если, например, пользователь тянет объект к правому или нижнему краю. В этом случае сообщение будет принято; в противном случае сообщение будет проигнорировано.
Повторно реализовано по отношению к QWidget.
См. также dropEvent() и startDrag().
Данная функция вызывается с сообщением event при отпускании перетаскиваемого объекта над виджетом. Если под указателем мыши есть элемент, готовый отреагировать на отпускание объекта, то сообщение принимается; в противном случае сообщение игнорируется.
Повторно реализовано по отношению к QWidget.
См. также startDrag().
Возвращает позицию индикатора перетаскивания относительно ближайшего элемента.
Данная функция добавлена в Qt 4.1.
Начинает редактирование записи с индексом index, если она может редактироваться.
Данная перегруженная функция-член предоставляеся для удобства. Ее поведение аналогично поведению вышеприведенной функции.
Начинает радактирование записи с индексом index создавая, если нужно, редактор, и возвращает true, если State представления становится равным EditingState; в противном случае возвращает false.
Действие, инициировавшее процесс редактирования, передается с помощью trigger, а связанное сообщение - с помощью event.
См. также closeEditor().
Удаляет редактор editor из карты.
Данный сигнал испускается, когда указатель мыши входит в область записи с индексом index. Для того, чтобы этот сигнал испускался, необходимо позволить отслеживание перемещений мыши.
См. также viewportEntered(), activated(), clicked(), doubleClicked() и pressed().
Выполняет компоновку не ожидая соответствующего сообщения.
См. также scheduleDelayedItemsLayout().
Данная функция вызывается с сообщением event, когда виджет обретает фокус. По умолчанию сообщение игнорируется.
Повторно реализовано по отношению к QWidget.
См. также setFocus() и focusOutEvent().
Данная функция вызывается с сообщением event, когда виджет теряет фокус. По умолчанию сообщение игнорируется.
Повторно реализовано по отношению к QWidget.
См. также clearFocus() и focusInEvent().
Возвращает горизонтальное смещение в представлении.
В базовом классе это чисто виртуальная функция.
Возвращает количество шагов горизонтальной полосы прокрутки на запись.
См. также setHorizontalStepsPerItem() и verticalStepsPerItem().
Возвращает индекс записи, расположенной в точке point, в модели.
В базовом классе это чисто виртуальная функция.
Возвращает виджет элемента в позиции index.
Данная функция добавлена в Qt 4.1.
См. также setIndexWidget().
Возвращает true если запись с индексом index скрыта, в противном случае возвращает false.
Сокрытие - это специфический способ использования элемента. Например, колонка TableView или строка TreeView могут быть отмечены как скрытые.
В базовом классе это чисто виртуальная функция.
Возвращает делегата записи, используемого данной моделью. Возваращается либо значение, установленное с помощью setItemDelegate(), либо значение по умолчанию.
См. также setItemDelegate().
Данная функция вызывается с сообщением event когда виджету посылается сообщение о нажатии клавиши клавиатуры. Реализация по умолчанию обрабатывает нажатия клавиш перемещения курсора, таких как Up, Down, Left, Right, Home, PageUp и PageDown, и испускает сигналы returnPressed(), spacePressed() и deletePressed() если нажаты соответствующие клавиши. Данная функция полезна там, где записи редактируются при нажатии ключевых клавиш, например, при нажатии F2.
Повторно реализовано по отношению к QWidget.
См. также edit().
Перемещает представление к записи, более всего соотвнтствующей строке search, и делает ее выбранной. Если никакая запись не найдена, ничего не случается.
Возвращает модель, которую представляет данное представление.
См. также setModel().
Данная функция вызывается с сообщением event при двойном щелчке кнопкой мыши внутри виджета. Если двойной щелчок совершается на валидном элементе, то испускается сигнал doubleClicked() и для элемента вызывается edit().
Повторно реализовано по отношению к QWidget.
Данная функция вызывается с сообщением event когда виджету посылается сообщение о передвижении мыши. Если происходит выбор и перемещение происходит поверх новых записей, то новые записи становятся выделенными, если происходит перетаскивание, то оно продолжается.
Повторно реализовано по отношению к QWidget.
Данная функция вызывается с сообщением event когда кнопка мыши нажимается в то время, как курсор находится над виджетом. Если нажатие происходит над доступным элементом, то он становится текущим. Данная функция испускает сигнал pressed().
Повторно реализовано по отношению к QWidget.
Данная функция вызывается с сообщением event когда кнопка мыши отпускается в то время, как курсор находится над виджетом. Если кнопка мыши была нажата над элементом, то функция испускает сигнал clicked().
Повторно реализовано по отношению к QWidget.
Перемещает указатель мыши в представлении в соответствии с cursorAction и модификаторами клавиатуры, заданными с помощью modifiers.
Открывает постоянный редактор для записи с индексом index. Если редактор не существует, то делегат создает новый редактор.
Данный сигнал испускается при нажатии кнопки мыши. Элемент, над которым нажали кнопку мыши, задается индексом index. Сигнал испускается только в том случае, если индекс валиден.
См. также activated(), clicked(), doubleClicked() и entered().
Сбрасывает внутреннее состояние записи.
Данная функция вызывается с сообщением event когда виджету посылается сообщение об изменении размера.
Повторно реализовано по отношению к QWidget.
См. также QWidget::resizeEvent().
Возвращает индекс модели записи в корневой записи модели. Корневая запись - это родительская запись верхнего уровня записей в представлении. Корень может быть недоступным.
См. также setRootIndex().
Данный слот вызывается когда планируется удаление строк. Удаляемые строки - это строки подчиненные родителю parent с номерами от start до end включительно. Реализация этой функции в базовом классе ничего не делает.
См. также rowsInserted().
Данный слот вызывается при вставке строк. Новые строки - это строки подчиненные родителю parent с номерами от start до end включительно. Реализация этой функции в базовом классе вызывает fetchMore() для проверки информации.
См. также rowsAboutToBeRemoved().
Намечает компоновку записей, которая будет использована при получении сообщения, запускающего компоновку.
Даже если scheduleDelayedItemsLayout() вызывается несколько раз до обработки сообщения компоновки, компоновка будет выполнена лишь единожды.
См. также executeDelayedItemsLayout().
Подготавливает представление к прокручиванию на (dx,dy) пикселей перемещая отображаемую область в противоположном направлении. Вы должны использовать эту функцию только в том случае, если Вы осуществляете прокручивание области отображения в Вашем подклассе представления.
Если Вы реализуете scrollContentsBy() в подклассе QAbstractItemView, вызовите эту функцию перед вызовом QWidget::scroll() для области отображения. В качестве альтернативы, вызовите только update()..
См. также scrollContentsBy(), dirtyRegionOffset() и setDirtyRegion().
Прокручивает представление для обеспечения видимости элемента с индексом index. Представление попытается разместить элемент в соответствии с предпочтениями hint.
В базовом классе это чистая виртуальная функция.
Прокручивает представление до самого низа.
Данная функция добавлена в Qt 4.1.
Прокручивает представление до самого верха.
Данная функция добавлена в Qt 4.1.
Выделяет все нескрытые элементы.
Эта удобная функция возвращает список индексов всех выбранных нескрытых элементов в представлении. Список не содержит дубликатов и не сортирован..
Реализация по умолчанию ничего не делает.
Это слот вызывается при изменении выделения. Ранее выбранное передается в deselected (может быть пустым), заново выбранное - в selected.
Возвращает флаги SelectionFlags, которые нужно использовать для обновления списка выбранных элементов для того, чтобы включить в список элемент, заданный индексом index. event - это событие пользовательского ввода, такое как мышь или клавиатура.
Заново реализуйте данную функция для определения Вашего собственного поведения при выборе.
Возвращает текущий выбор.
См. также setSelectionModel() и clearSelection().
Присваивает текущей записи индекс index.
См. также currentIndex().
Устанавливает переданную область region, как загрязненную, тем самым указывая, что она должна быть обновлена. Вы должны вызывать данную фунцию только в том случае, если заново реализуете ее в подклассе.
Данная функция добавлена в Qt 4.1.
См. также scrollDirtyRegion() и dirtyRegionOffset().
Устанавливает разрешение горизонтальной полосы прокрутки в шагах на элемент в steps.
Это число - количество шагов, совершаемых горизонтальной полосой прокрутки для прокручивания представления на ширину одного элемента.
См. также horizontalStepsPerItem() и setVerticalStepsPerItem().
Присваивает индекс index элементу виджета widget.
Данная функция добавлена в Qt 4.1.
См. также indexWidget().
Устанавливает делегата записи для ее представления и модели в delegate. Это полезно если Вы хотите иметь полный контроль над отображением и редактированием элементов.
См. также itemDelegate().
Устанавливает модель model для отображения в представлении.
См. также model().
Устанавливает в качестве корневого элемента элемент с индексом index.
См. также rootIndex().
Применяет выбранные флаги flags к элементам, находящимся внутри или затрагиваемые прямоугольником rect.
При реализации Вашего представления, setSelection должна вызывать selectionModel()->select(selection, flags), где selection может быть или пустым QModelIndex, или QItemSelection, содержащим все элементы, заключенные в rect.
См. также selectionCommand().
Устанавливает в качестве текущего выбора selectionModel.
См. также selectionModel() и clearSelection().
Устанавливает состояние отображения записей в state.
См. также state().
Устанавливает разрешение вертикальной полосы прокрутки в шагах на элемент в steps.
Это число - количество шагов, совершаемых вертикальной полосой прокрутки для прокручивания представления на высоту одного элемента.
См. также verticalStepsPerItem() и setHorizontalStepsPerItem().
Возвращает предпочитаемую ширину столбца, заданного номером column, или, если не поддерживается моделью, -1.
Возвращает предпочитаемый размер для записи, заданной индексом index, или пустое значение для некорректного индекса.
Возвращает предпочитаемую высоту строки, заданной номером row, или, если не поддерживается моделью, -1.
Начинает перетаскивание вызвав drag->start() и используя supportedActions.
Возвращает состояние представления.
См. также setState().
Данная функция вызывается с сообщением event, когда виджету посылается сообщение таймера.
Повторно реализовано по отношению к QObject.
См. также QObject::timerEvent().
Возвращает вертикальное смещение представления.
В базовом классе это чисто виртуальная функция.
Возвращает разрешение вертикальной полосы прокрутки в шагах на элемент.
См. также setVerticalStepsPerItem() и horizontalStepsPerItem().
Возвращает структуру QStyleOptionViewItem, содержащую палитру представления, шрифт, состояние, выравнивание и т.д.
Данный сигнал испускается при попадании указателя мыши в область представления. Для получения данного сигнала должно быть включено отслеживание виджетом перемещений мыши.
См. также entered().
Данная функция используется для обработки сообщений инструментов, состояния, и режима What's This?, если event является QEvent::ToolTip, QEvent::WhatsThis или QEvent::StatusTip. Все другие сообщения передаются обработчику viewportEvent() базового класса.
Повторно реализовано по отношению к QAbstractScrollArea.
Возвращает прямоугольник области отображения, занятый элементом с индексом index.
Если Ваш элемент отображается в нескольких областях, то visualRect должна возвратить первичную область, содержащую запись с указанным индексом, а не объединенную область, которая может охватывать элемент, касаться его или перерисовываться с элементом.
В базовом классе это чистая виртуальная функция.
Возвращает область области отображения, содержащую записи из набора selection.
Copyright © 2005 Trolltech | Trademarks | Qt 4.1.0 |