Spec-Zone.ru › Qt 6.1

Класс QListWidget

Класс QListWidget предоставляет виджет списка на основе элементов. Подробнее...

Заголовок: #include <QListWidget>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследует: QListView
  • Список всех членов, включая унаследованные

Свойства

  • count : const int
  • currentRow : int
  • sortingEnabled : bool

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

QListWidget(QWidget *parent = nullptr)
virtual ~QListWidget()
void addItem(const QString &label)
void addItem(QListWidgetItem *item)
void addItems(const QStringList &labels)
void closePersistentEditor(QListWidgetItem *item)
int count() const
QListWidgetItem * currentItem() const
int currentRow() const
void editItem(QListWidgetItem *item)
QList<QListWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags) const

Переопределённые открытые функции

virtual void setSelectionModel(QItemSelectionModel *selectionModel) override

Открытые слоты

void clear()
void scrollToItem(const QListWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)

Сигналы

Защищённые функции

виртуальный bool dropMimeData(int index, const QMimeData *data, Qt::DropAction action)
виртуальный QMimeData * mimeData(const QList<QListWidgetItem *> &items) const
виртуальный QStringList mimeTypes() const
виртуальный Qt::DropActions supportedDropActions() const

Переопределённые защищённые функции

виртуальный void dropEvent(QDropEvent *event) override
виртуальный bool event(QEvent *e) override

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

QListWidget — это удобный класс, который предоставляет вид списка, аналогичный тому, который предоставляется QListView, но с классическим интерфейсом на основе элементов для добавления и удаления элементов. QListWidget использует внутреннюю модель для управления каждым элементом QListWidgetItem в списке.

Для более гибкого виджета списка используйте класс QListView со стандартной моделью.

Виджеты списков создаются так же, как и другие виджеты:

    QListWidget *listWidget = new QListWidget(this);

Свойство selectionMode() виджета списка определяет, сколько элементов списка можно выбрать одновременно и можно ли создавать сложные выделения элементов. Это можно установить с помощью функции setSelectionMode().

Существует два способа добавления элементов в список: они могут быть созданы с виджетом списка в качестве родительского виджета или созданы без родительского виджета и добавлены в список позже. Если виджет списка уже существует, когда элементы создаются, первый метод проще использовать:

    new QListWidgetItem(tr("Oak"), listWidget);
    new QListWidgetItem(tr("Fir"), listWidget);
    new QListWidgetItem(tr("Pine"), listWidget);

Если вам нужно вставить новый элемент в список в определённой позиции, то он должен быть создан без родительского виджета. Затем для размещения его в списке должна использоваться функция insertItem(). Виджет списка будет владеть элементом.

    QListWidgetItem *newItem = new QListWidgetItem;
    newItem->setText(itemText);
    listWidget->insertItem(row, newItem);

Для нескольких элементов вместо этого можно использовать insertItems(). Количество элементов в списке находится с помощью функции count(). Для удаления элементов из списка используйте takeItem().

Текущий элемент в списке можно найти с помощью currentItem(), и изменить с помощью setCurrentItem(). Пользователь также может изменить текущий элемент, перемещаясь с помощью клавиатуры или нажав на другой элемент. При изменении текущего элемента испускается сигнал currentItemChanged() с новым текущим элементом и элементом, который был текущим ранее.

См. также QListWidgetItem, QListView, QTreeView, Программирование модели/представления и Пример диалога вкладки.

Документация свойств

[read-only] количество : const int

Это свойство содержит количество элементов в списке, включая любые скрытые элементы.

Функции доступа:

int количество() const

текущаяСтрока : int

Это свойство содержит строку текущего элемента.

В зависимости от текущего режима выбора, строка также может быть выбрана.

Функции доступа:

int текущаяСтрока() const
void установитьТекущуюСтроку(int row)
void установитьТекущуюСтроку(int row, QItemSelectionModel::SelectionFlags command)

Сигнал уведомления:

void изменениеТекущейСтроки(int currentRow)

сортировкаВключена : bool

Это свойство содержит, включена ли сортировка

Если это свойство true, сортировка включена для списка; если свойство ложно, сортировка не включена.

Значение по умолчанию — false.

Функции доступа:

bool включенаСортировка() const
void включитьСортировку(bool enable)

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

QListWidget::QListWidget(QWidget *parent = nullptr)

Создаёт пустой QListWidget с заданным parent.

[slot] void QListWidget::очистить()

Удаляет все элементы и выделения в представлении.

Предупреждение: Все элементы будут постоянно удалены.

[signal] void QListWidget::изменениеТекущегоЭлемента(QListWidgetItem *current, QListWidgetItem *previous)

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

previous — это элемент, который ранее имел фокус; current — новый текущий элемент.

[signal] void QListWidget::изменениеТекущейСтроки(int currentRow)

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

currentRow — это строка текущего элемента. Если текущего элемента нет, currentRow равен -1.

Примечание: Сигнал уведомления для свойства текущаяСтрока.

[signal] void QListWidget::изменениеТекстаТекущегоЭлемента(const QString &currentText)

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

currentText — это текстовые данные в текущем элементе. Если текущего элемента нет, currentText является недопустимым.

[signal] void QListWidget::itemActivated(QListWidgetItem *item)

Этот сигнал излучается, когда элемент item активирован. Элемент активируется, когда пользователь нажимает или дважды нажимает на него, в зависимости от конфигурации системы. Также он активируется, когда пользователь нажимает клавишу активации (в Windows и X11 это клавиша Return, в Mac OS X — Command+O).

[signal] void QListWidget::itemChanged(QListWidgetItem *item)

Этот сигнал излучается всякий раз, когда данные элемента item изменяются.

[signal] void QListWidget::itemClicked(QListWidgetItem *item)

Этот сигнал излучается с указанным элементом item, когда на элемент в виджете нажимается кнопка мыши.

См. также itemPressed() и itemDoubleClicked().

[signal] void QListWidget::itemDoubleClicked(QListWidgetItem *item)

Этот сигнал излучается с указанным элементом item, когда на элемент в виджете дважды нажимается кнопка мыши.

См. также itemClicked() и itemPressed().

[signal] void QListWidget::itemEntered(QListWidgetItem *item)

Этот сигнал излучается, когда указатель мыши входит в элемент. Элемент item — это элемент, в который вошел указатель. Этот сигнал излучается только тогда, когда включен mouseTracking или когда нажата кнопка мыши во время перемещения в элемент.

См. также QWidget::setMouseTracking().

[signal] void QListWidget::itemPressed(QListWidgetItem *item)

Этот сигнал излучается с указанным элементом item, когда на элемент в виджете нажимается кнопка мыши.

См. также itemClicked() и itemDoubleClicked().

[signal] void QListWidget::itemSelectionChanged()

Этот сигнал излучается всякий раз, когда изменяется выбор.

См. также selectedItems(), QListWidgetItem::isSelected() и currentItemChanged().

[slot] void QListWidget::scrollToItem(const QListWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)

Прокручивает представление, если необходимо, чтобы элемент item был виден.

hint указывает, где должен находиться элемент item после операции.

[virtual] QListWidget::~QListWidget()

Уничтожает виджет списка и все его элементы.

void QListWidget::addItem(const QString &label)

Вставляет элемент с текстом label в конец виджета списка.

void QListWidget::addItem(QListWidgetItem *item)

Вставляет элемент item в конец виджета списка.

Предупреждение: QListWidgetItem может быть добавлен в QListWidget только один раз. Добавление одного и того же QListWidgetItem несколько раз в QListWidget приведёт к неопределённому поведению.

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

void QListWidget::addItems(const QStringList &labels)

Вставляет элементы с текстом labels в конец виджета списка.

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

void QListWidget::closePersistentEditor(QListWidgetItem *item)

Закрывает постоянный редактор для данного элемента item.

См. также openPersistentEditor() и isPersistentEditorOpen().

QListWidgetItem *QListWidget::currentItem() const

Возвращает текущий элемент.

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

[override virtual protected] void QListWidget::dropEvent(QDropEvent *event)

Переопределяет: QListView::dropEvent(QDropEvent *event).

[virtual protected] bool QListWidget::dropMimeData(int index, const QMimeData *data, Qt::DropAction action)

Обрабатывает данные data, предоставленные внешней операцией перетаскивания, которая завершилась указанным действием action в указанном index. Возвращает true если data и action могут быть обработаны моделью; в противном случае возвращает false.

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

void QListWidget::editItem(QListWidgetItem *item)

Начинает редактирование элемента item, если он редактируемый.

[override virtual protected] bool QListWidget::event(QEvent *e)

Переопределяет: QListView::event(QEvent *e).

QList<QListWidgetItem *> QListWidget::findItems(const QString &text, Qt::MatchFlags flags) const

Ищет элементы с текстом, соответствующим строке text, используя заданные flags.

QModelIndex QListWidget::indexFromItem(const QListWidgetItem *item) const

Возвращает QModelIndex, связанную с заданным элементом item.

Примечание: В версиях Qt до 5.10 эта функция принимала не-const элемент item.

void QListWidget::insertItem(int row, QListWidgetItem *item)

Вставляет элемент item в позицию списка, заданную row.

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

void QListWidget::insertItem(int row, const QString &label)

Вставляет элемент с текстом label в виджет списка в позиции, заданной row.

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

void QListWidget::insertItems(int row, const QStringList &labels)

Вставляет элементы из списка labels в список, начиная с заданного row.

См. также insertItem() и addItem().

[since 5.10] bool QListWidget::isPersistentEditorOpen(QListWidgetItem *item) const

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

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

См. также openPersistentEditor() и closePersistentEditor().

QListWidgetItem *QListWidget::item(int row) const

Возвращает элемент, занимающий заданную строку row в списке, если он установлен; в противном случае возвращает nullptr.

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

QListWidgetItem *QListWidget::itemAt(const QPoint &p) const

Возвращает указатель на элемент в координатах p. Координаты относительны области просмотра виджета списка viewport().

QListWidgetItem *QListWidget::itemAt(int x, int y) const

Это перегруженная функция.

Возвращает указатель на элемент в координатах (x, y). Координаты относительны области просмотра виджета списка viewport().

QListWidgetItem *QListWidget::itemFromIndex(const QModelIndex &index) const

Возвращает указатель на QListWidgetItem, связанный с заданным индексом.

QWidget *QListWidget::itemWidget(QListWidgetItem *item) const

Возвращает виджет, отображаемый в заданном item.

См. также setItemWidget() и removeItemWidget().

[virtual protected] QList<QListWidgetItem *> QListWidget::items(const QMimeData *data) const

Возвращает список указателей на элементы, содержащиеся в объекте data. Если объект не был создан QListWidget в том же процессе, список пуст.

nullptrQMimeData *QListWidget::mimeData(const QList<QListWidgetItem *> &items) const

Возвращает объект, содержащий сериализованное описание указанных items. Формат описания элементов получен из функции mimeTypes().

Если список элементов пуст, nullptr возвращается вместо сериализованного пустого списка.

[virtual protected] QStringList QListWidget::mimeTypes() const

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

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

void QListWidget::openPersistentEditor(QListWidgetItem *item)

Открывает редактор для заданного item. Редактор остаётся открытым после редактирования.

См. также closePersistentEditor() и isPersistentEditorOpen().

void QListWidget::removeItemWidget(QListWidgetItem *item)

Удаляет виджет, установленный на заданный item.

Чтобы полностью удалить элемент (строку) из списка, удалите элемент или используйте takeItem().

См. также itemWidget() и setItemWidget().

int QListWidget::row(const QListWidgetItem *item) const

Возвращает строку, содержащую заданный item.

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

QList<QListWidgetItem *> QListWidget::selectedItems() const

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

void QListWidget::setCurrentItem(QListWidgetItem *item)

Устанавливает текущим элементом item.

Если режим выбора не NoSelection, элемент также выбирается.

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

void QListWidget::setCurrentItem(QListWidgetItem *item, QItemSelectionModel::SelectionFlags command)

Устанавливает текущим элементом item, используя заданную команду.

void QListWidget::setCurrentRow(int row, QItemSelectionModel::SelectionFlags command)

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

Примечание: Функция-сеттер для свойства currentRow.

void QListWidget::setItemWidget(QListWidgetItem *item, QWidget *widget)

Устанавливает widget для отображения в заданном item.

Эта функция должна использоваться только для отображения статического содержимого вместо элемента списка. Если требуется отображать пользовательское динамическое содержимое или реализовывать пользовательский виджет редактора, используйте QListView и подкласс QStyledItemDelegate вместо этого.

См. также itemWidget(), removeItemWidget() и Классы-делегаты.

[override virtual] void QListWidget::setSelectionModel(QItemSelectionModel *selectionModel)

Переопределяет: QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel).

void QListWidget::sortItems(Qt::SortOrder order = Qt::AscendingOrder)

Сортирует все элементы в виджете списка в соответствии с указанным order.

[virtual protected] Qt::DropActions QListWidget::supportedDropActions() const

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

См. также Qt::DropActions.

QListWidgetItem *QListWidget::takeItem(int row)

Удаляет и возвращает элемент из заданной строки в виджете списка; в противном случае возвращает nullptr.

Элементы, удалённые из виджета списка, не будут управляться Qt и должны быть удалены вручную.

См. также insertItem() и addItem().

QRect QListWidget::visualItemRect(const QListWidgetItem *item) const

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

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

Spec-Zone.ru

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