QListWidget Class

QListWidget 클래스는 항목 기반 목록 위젯을 제공합니다. 더 보기...

Header: #include <QListWidget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
상속합니다: QListView

속성

공용 함수

QListWidget(QWidget *parent = nullptr)
virtual ~QListWidget()
void addItem(QListWidgetItem *item)
void addItem(const QString &label)
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
QModelIndex indexFromItem(const QListWidgetItem *item) const
void insertItem(int row, QListWidgetItem *item)
void insertItem(int row, const QString &label)
void insertItems(int row, const QStringList &labels)
bool isPersistentEditorOpen(QListWidgetItem *item) const
bool isSortingEnabled() const
QListWidgetItem *item(int row) const
QListWidgetItem *itemAt(const QPoint &p) const
QListWidgetItem *itemAt(int x, int y) const
QListWidgetItem *itemFromIndex(const QModelIndex &index) const
QWidget *itemWidget(QListWidgetItem *item) const
QList<QListWidgetItem *> items(const QMimeData *data) const
void openPersistentEditor(QListWidgetItem *item)
void removeItemWidget(QListWidgetItem *item)
int row(const QListWidgetItem *item) const
QList<QListWidgetItem *> selectedItems() const
void setCurrentItem(QListWidgetItem *item)
void setCurrentItem(QListWidgetItem *item, QItemSelectionModel::SelectionFlags command)
void setCurrentRow(int row, QItemSelectionModel::SelectionFlags command)
void setCurrentRow(int row)
void setItemWidget(QListWidgetItem *item, QWidget *widget)
void setSortingEnabled(bool enable)
void sortItems(Qt::SortOrder order = Qt::AscendingOrder)
QListWidgetItem *takeItem(int row)
QRect visualItemRect(const QListWidgetItem *item) const

재구현된 공용 함수

virtual void setSelectionModel(QItemSelectionModel *selectionModel) override

공용 슬롯

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

신호

void currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
void currentRowChanged(int currentRow)
void currentTextChanged(const QString &currentText)
void itemActivated(QListWidgetItem *item)
void itemChanged(QListWidgetItem *item)
void itemClicked(QListWidgetItem *item)
void itemDoubleClicked(QListWidgetItem *item)
void itemEntered(QListWidgetItem *item)
void itemPressed(QListWidgetItem *item)
void itemSelectionChanged()

보호된 함수

virtual bool dropMimeData(int index, const QMimeData *data, Qt::DropAction action)
virtual QMimeData *mimeData(const QList<QListWidgetItem *> &items) const
virtual QStringList mimeTypes() const
virtual Qt::DropActions supportedDropActions() const

재구현된 보호 함수

virtual void dropEvent(QDropEvent *event) override
virtual 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] count : const int

이 속성에는 숨겨진 항목을 포함하여 목록에 있는 항목의 수가 저장됩니다.

액세스 함수:

int count() const

currentRow : int

이 속성은 현재 항목의 행을 보유합니다.

현재 선택 모드에 따라 행이 선택될 수도 있습니다.

기능에 액세스합니다:

int currentRow() const
void setCurrentRow(int row)
void setCurrentRow(int row, QItemSelectionModel::SelectionFlags command)

알림 신호:

void currentRowChanged(int currentRow)

sortingEnabled : bool

이 속성은 정렬 활성화 여부를 보유합니다.

이 속성이 true 인 경우 목록에 정렬이 활성화되고, 속성이 false인 경우 정렬이 활성화되지 않습니다.

기본값은 false입니다.

액세스 함수:

bool isSortingEnabled() const
void setSortingEnabled(bool enable)

멤버 함수 문서

[explicit] QListWidget::QListWidget(QWidget *parent = nullptr)

주어진 parent 으로 빈 QListWidget을 생성합니다.

[virtual noexcept] QListWidget::~QListWidget()

목록 위젯과 모든 항목을 삭제합니다.

void QListWidget::addItem(QListWidgetItem *item)

목록 위젯 끝에 item 을 삽입합니다.

경고: QListWidgetItemQListWidget 에 한 번만 추가할 수 있습니다. QListWidget 에 동일한 QListWidgetItem 을 여러 번 추가하면 정의되지 않은 동작이 발생합니다.

insertItem()도 참조하세요 .

void QListWidget::addItem(const QString &label)

목록 위젯 끝에 label 텍스트가 있는 항목을 삽입합니다.

void QListWidget::addItems(const QStringList &labels)

목록 위젯 끝에 labels 텍스트가 있는 항목을 삽입합니다.

insertItems()도 참조하세요 .

[slot] void QListWidget::clear()

뷰의 모든 항목 및 선택 항목을 제거합니다.

경고: 모든 항목이 영구적으로 삭제됩니다.

void QListWidget::closePersistentEditor(QListWidgetItem *item)

주어진 item 에 대한 퍼시스턴트 편집기를 닫습니다.

openPersistentEditor() 및 isPersistentEditorOpen()도 참조하세요 .

QListWidgetItem *QListWidget::currentItem() const

현재 항목을 반환합니다.

setCurrentItem()도 참조하세요 .

[signal] void QListWidget::currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)

이 신호는 현재 항목이 변경될 때마다 발생합니다.

previous 는 이전에 포커스가 있던 항목이고 current 는 새로운 현재 항목입니다.

[signal] void QListWidget::currentRowChanged(int currentRow)

이 신호는 현재 항목이 변경될 때마다 발생합니다.

currentRow 는 현재 항목의 행입니다. 현재 항목이 없는 경우 currentRow 은 -1입니다.

참고: 속성에 대한 알림 신호 currentRow.

[signal] void QListWidget::currentTextChanged(const QString &currentText)

이 신호는 현재 항목이 변경될 때마다 발생합니다.

currentText 는 현재 항목의 텍스트 데이터입니다. 현재 항목이 없는 경우 currentText 은 유효하지 않습니다.

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

다시 구현합니다: QListView::dropEvent(QDropEvent * 이벤트).

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

주어진 index 에서 주어진 action 로 끝난 외부 드래그 앤 드롭 작업으로 제공된 data 을 처리합니다. dataaction 를 모델에서 처리할 수 있으면 true 를 반환하고, 그렇지 않으면 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

주어진 flags 을 사용하여 text 문자열과 일치하는 텍스트가 있는 항목을 찾습니다.

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

주어진 item 과 연관된 QModelIndex 을 반환합니다.

참고: 5.10 이전 Qt 버전에서는, 이 함수는const item .

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

row 에서 제공한 목록의 위치에 item 을 삽입합니다.

addItem()도 참조하세요 .

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

row 에 지정된 위치에 목록 위젯에 label 이라는 텍스트가 있는 항목을 삽입합니다.

addItem()도 참조하세요 .

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

주어진 row 에서 시작하여 labels 목록의 항목을 목록에 삽입합니다.

insertItem() 및 addItem()도 참조하세요 .

bool QListWidget::isPersistentEditorOpen(QListWidgetItem *item) const

항목 item 에 대한 영구 편집기가 열려 있는지 여부를 반환합니다.

openPersistentEditor() 및 closePersistentEditor()도 참조하세요 .

QListWidgetItem *QListWidget::item(int row) const

목록에서 지정된 row 을 차지하는 항목이 설정된 경우 반환하고, 그렇지 않으면 nullptr 을 반환합니다.

row()도 참조하세요 .

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

이 신호는 item 가 활성화될 때 방출됩니다. item 은 시스템 구성에 따라 사용자가 클릭하거나 더블클릭하면 활성화됩니다. 또한 사용자가 활성화 키(Windows 및 X11에서는 Return 키, Mac OS X에서는 Command+O 키)를 누르면 활성화됩니다.

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

좌표 p 에 있는 항목에 대한 포인터를 반환합니다. 좌표는 목록 위젯의 viewport()에 상대적입니다.

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

이 함수는 오버로드된 함수입니다.

좌표(x, y)에서 항목에 대한 포인터를 반환합니다. 좌표는 목록 위젯의 viewport()에 상대적입니다.

[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 은 입력된 항목입니다. 이 신호는 마우스 트래킹이 켜져 있거나 항목으로 이동하는 동안 마우스 버튼을 눌렀을 때만 발생합니다.

QWidget::setMouseTracking()도 참조하세요 .

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

주어진 index 과 연관된 QListWidgetItem 에 대한 포인터를 반환합니다.

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

이 신호는 위젯의 항목에서 마우스 버튼을 누르면 지정된 item 으로 전송됩니다.

itemClicked() 및 itemDoubleClicked()도 참조하세요 .

[signal] void QListWidget::itemSelectionChanged()

이 신호는 선택 항목이 변경될 때마다 발산됩니다.

selectedItems(), QListWidgetItem::isSelected() 및 currentItemChanged()도 참조하세요 .

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

지정된 item 에 표시된 위젯을 반환합니다.

setItemWidget() 및 removeItemWidget()도 참조하세요 .

QList<QListWidgetItem *> QListWidget::items(const QMimeData *data) const

data 객체에 포함된 항목에 대한 포인터 목록을 반환합니다. 동일한 프로세스에서 QListWidget 에 의해 객체가 생성되지 않은 경우 목록은 비어 있습니다.

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

지정된 items 에 대한 직렬화된 설명이 포함된 객체를 반환합니다. 항목을 설명하는 데 사용되는 형식은 mimeTypes() 함수에서 가져옵니다.

항목 목록이 비어 있으면 직렬화된 빈 목록 대신 nullptr 가 반환됩니다.

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

리스트위젯 항목의 목록을 설명하는 데 사용할 수 있는 MIME 타입의 목록을 반환합니다.

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()도 참조하세요 .

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

필요한 경우 보기를 스크롤하여 item 가 표시되도록 합니다.

hint 작업 후 item 위치를 지정합니다.

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

목록 위젯에서 선택한 모든 항목의 목록을 반환합니다.

void QListWidget::setCurrentItem(QListWidgetItem *item)

현재 항목을 item 로 설정합니다.

선택 모드가 NoSelection 이 아닌 경우 항목도 선택됩니다.

currentItem()도 참조하세요 .

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

주어진 command 을 사용하여 현재 항목을 item 으로 설정합니다.

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

주어진 command 을 사용하여 현재 행을 주어진 row 으로 설정합니다,

참고: currentRow 속성에 대한 세터 함수입니다.

currentRow()도 참조하세요 .

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

지정된 item 에 표시할 widget 을 설정합니다.

이 함수는 목록 위젯 항목 대신 정적 콘텐츠를 표시할 때만 사용해야 합니다. 사용자 정의 동적 콘텐츠를 표시하거나 사용자 정의 편집기 위젯을 구현하려면 QListView 및 하위 클래스 QStyledItemDelegate 을 대신 사용하세요.

참고: 이 목록은 widget 의 소유권을 갖습니다.

itemWidget(), removeItemWidget() 및 델리게이트 클래스도참조하세요 .

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

다시 구현합니다: QAbstractItemView::setSelectionModel(QItemSelectionModel *셀렉션모델).

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

지정된 order 에 따라 목록 위젯의 모든 항목을 정렬합니다.

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

이 뷰에서 지원되는 드롭 동작을 반환합니다.

Qt::DropActions참조하세요 .

QListWidgetItem *QListWidget::takeItem(int row)

목록 위젯의 지정된 row 에서 항목을 제거하여 반환하고, 그렇지 않으면 nullptr 을 반환합니다.

목록 위젯에서 제거된 항목은 Qt에서 관리되지 않으므로 수동으로 삭제해야 합니다.

insertItem() 및 addItem()도 참조하세요 .

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

item 에서 항목이 차지하고 있는 뷰포트의 사각형을 반환합니다.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.