QListWidget Class
QListWidget 클래스는 항목 기반의 목록 위젯을 제공합니다. 더 보기...
| 헤더: | #include <QListWidget> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 상속: | QListView |
속성
- count : int
- currentRow : int
- sortingEnabled : bool
(since 6.10)supportedDragActions : Qt::DropActions
공개 함수
| 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) |
| void | setCurrentRow(int row, QItemSelectionModel::SelectionFlags command) |
| void | setItemWidget(QListWidgetItem *item, QWidget *widget) |
| void | setSortingEnabled(bool enable) |
| void | setSupportedDragActions(Qt::DropActions actions) |
| void | sortItems(Qt::SortOrder order = Qt::AscendingOrder) |
| Qt::DropActions | supportedDragActions() const |
| 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 ¤tText) |
| 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 |
재구현된 보호 함수
상세 설명

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 : 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) |
[since 6.10] supportedDragActions : Qt::DropActions
이 속성은 이 뷰에서 지원하는 드래그 동작을 포함합니다.
이 열거형은 Qt 6.10에서 도입되었습니다.
액세스 함수:
| Qt::DropActions | supportedDragActions() const |
| void | setSupportedDragActions(Qt::DropActions actions) |
Qt::DropActions 및 supportedDropActions()도 참조하십시오 .
멤버 함수 문서
[explicit] QListWidget::QListWidget(QWidget *parent = nullptr)
지정된 ` parent`을 사용하여 빈 `QListWidget`을 생성합니다.
[virtual noexcept] QListWidget::~QListWidget()
목록 위젯과 그 안의 모든 항목을 삭제합니다.
void QListWidget::addItem(QListWidgetItem *item)
목록 위젯의 끝에 ‘ item ’을 삽입합니다.
경고: QListWidgetItem 은 QListWidget 에 한 번만 추가할 수 있습니다. 동일한 QListWidgetItem 을 QListWidget 에 여러 번 추가하면 정의되지 않은 동작이 발생합니다.
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 ¤tText)
이 신호는 현재 항목이 변경될 때마다 발생합니다.
currentText 는 현재 항목의 텍스트 데이터입니다. 현재 항목이 없는 경우, currentText 는 유효하지 않습니다.
[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)
지정된 index 내에서 지정된 action 로 종료된 외부 드래그 앤 드롭 작업에 의해 전달된 data 를 처리합니다. 모델이 data 및 action 를 처리할 수 있는 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.
supportedDropActions() 및 supportedDragActions도 참조하십시오 .
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 를 반환합니다.
참고: Qt 5.10 이전버전에서는 이 함수가 `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)
labels 목록에 있는 항목들을, 지정된 row 위치부터 시작하여 목록에 삽입합니다.
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 `는 커서가 들어간 항목을 나타냅니다. 이 신호는 `mouseTracking`이 켜져 있거나, 항목 안으로 이동하는 도중에 마우스 버튼이 눌렸을 때만 발생합니다.
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)
widget 를 지정된 item 에 표시되도록 설정합니다.
이 함수는 목록 위젯 항목 대신 정적 콘텐츠를 표시하는 용도로만 사용해야 합니다. 사용자 정의 동적 콘텐츠를 표시하거나 사용자 정의 편집기 위젯을 구현하려면, 대신 ` QListView `을 사용하고 ` QStyledItemDelegate `을 상속받은 서브클래스를 사용하십시오.
참고: 목록은 ` widget`의 소유권을 가져갑니다.
참조: 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, supportedDragActions 및 dropMimeData()도 참조하십시오 .
QListWidgetItem *QListWidget::takeItem(int row)
목록 위젯에서 지정된 ` row `에서 항목을 제거하고 반환합니다. 그렇지 않은 경우 ` nullptr`를 반환합니다.
목록 위젯에서 제거된 항목은 Qt에 의해 관리되지 않으므로 수동으로 삭제해야 합니다.
insertItem() 및 addItem()도 참조하십시오 .
QRect QListWidget::visualItemRect(const QListWidgetItem *item) const
item 에서 해당 항목이 뷰포트 내에서 차지하는 직사각형을 반환합니다.
© 2026 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.