QListWidget 類

QListWidget 類提供基於項的列錶 Widget。 更多...

頭: #include <QListWidget>
qmake: QT += widgets
繼承: QListView

特性

公共函數

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
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
QWidget * itemWidget (QListWidgetItem * item ) 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 sortItems (Qt::SortOrder order = Qt::AscendingOrder)
QListWidgetItem * takeItem (int row )
QRect visualItemRect (const QListWidgetItem * item ) const

重實現公共函數

virtual void dropEvent (QDropEvent * event ) override
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 )
QModelIndex indexFromItem (const QListWidgetItem * item ) const
QListWidgetItem * itemFromIndex (const QModelIndex & index ) const
QList<QListWidgetItem *> items (const QMimeData * data ) const
virtual QMimeData * mimeData (const QList<QListWidgetItem *> items ) const
virtual QStringList mimeTypes () const
virtual Qt::DropActions supportedDropActions () const

重實現保護函數

virtual bool event (QEvent * e ) override

詳細描述

QListWidget 是提供列錶視圖的方便類,類似供給通過 QListView ,但具有用於添加和移除項的基於項的經典接口。QListWidget 使用內部模型來管理每個 QListWidgetItem 在列錶中。

對於更靈活列錶視圖 Widget,使用 QListView 類采用標準模型。

列錶 Widget 的構造方式如同其它小部件:

    QListWidget *listWidget = new QListWidget(this);
					

The selectionMode () 對於列錶 Widget 確定可以同時選擇列錶中多少項,及是否可以創建復雜項選定。這可以設置采用 setSelectionMode () 函數。

將項添加到列錶有 2 種方式:可以采用列錶 Widget 作為其父級小部件來構造它們,或可以不采用父級小部件構造它們和稍後添加到列錶。若列錶 Widget 已存在當構造項時,第一種方法更易於使用:

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

若需要將新的項插入列錶特定位置,則它應不采用父級 Widget 被構造。 insertItem () 函數然後應該用於將其放置在列錶中。列錶 Widget 將擁有項的所有權。

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

對於多個項, insertItems () 可以使用,取而代之。可以找到列錶中的項數采用 count () 函數。要從列錶移除項,使用 takeItem ().

可以找到列錶中的當前項采用 currentItem (),和改變采用 setCurrentItem ()。用戶還可以采用鍵盤導航或點擊不同項,改變當前項。當當前項改變時, currentItemChanged () 信號被發射采用新的當前項和先前是當前的項。

另請參閱 QListWidgetItem , QListView , QTreeView , 模型/視圖編程 ,和 選項卡對話框範例 .

特性文檔編製

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。

該特性在 Qt 4.2 引入。

訪問函數:

bool isSortingEnabled () const
void setSortingEnabled (bool enable )

成員函數文檔編製

QListWidget:: QListWidget ( QWidget * parent = nullptr)

構造空的 QListWidget 采用給定 parent .

[slot] void QListWidget:: clear ()

移除視圖中的所有項和選定。

警告: 所有項會被永久刪除。

[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 無效。

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

此信號發射,當 item 被激活。 item 被激活當用戶點擊或雙擊它時,從屬係統配置。它也被激活當用戶按下激活鍵時 (在 Windows 和 X11 這是 返迴 鍵,在 Mac OS X 它是 Command+O ).

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

此信號發射,每當數據對於 item 已改變。

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

發射此信號采用指定 item 當在 Widget 項上點擊鼠標按鈕時。

另請參閱 itemPressed () 和 itemDoubleClicked ().

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

發射此信號采用指定 item 當在 Widget 項上雙擊鼠標按鈕時。

另請參閱 itemClicked () 和 itemPressed ().

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

此信號發射,當鼠標光標進入項時。 item 是進入的項。此信號纔發射當 mouseTracking 被打開,或當移入項時按下鼠標按鈕。

另請參閱 QWidget::setMouseTracking ().

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

發射此信號采用指定 item 當在 Widget 項上按下鼠標按鈕時。

另請參閱 itemClicked () 和 itemDoubleClicked ().

[signal] void QListWidget:: itemSelectionChanged ()

此信號發射,每當選定改變時。

另請參閱 selectedItems (), QListWidgetItem::isSelected (),和 currentItemChanged ().

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

捲動視圖若有必要以確保 item 可見。

hint 指定哪裏 item 應該被定位在操作後。

[虛擬] QListWidget:: ~QListWidget ()

銷毀列錶 Widget 及其所有項。

void QListWidget:: addItem (const QString & label )

插入項采用文本 label 在列錶 Widget 末尾。

void QListWidget:: addItem ( QListWidgetItem * item )

插入 item 在列錶 Widget 末尾。

警告: A QListWidgetItem 隻可以被添加到 QListWidget 一次。添加相同 QListWidgetItem 多次到 QListWidget 將産生未定義行為。

另請參閱 insertItem ().

void QListWidget:: addItems (const QStringList & labels )

插入項采用文本 labels 在列錶 Widget 末尾。

另請參閱 insertItems ().

void QListWidget:: closePersistentEditor ( QListWidgetItem * item )

關閉持久編輯器為給定 item .

另請參閱 openPersistentEditor () 和 isPersistentEditorOpen ().

QListWidgetItem *QListWidget:: currentItem () const

返迴當前項。

另請參閱 setCurrentItem ().

[override virtual] 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 if data and 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 .

[protected] 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 在列錶 Widget 中於給定位置通過 row .

另請參閱 addItem ().

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

插入項從列錶 labels 進列錶,開始於給定 row .

另請參閱 insertItem () 和 addItem ().

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() .

[protected] QListWidgetItem *QListWidget:: itemFromIndex (const QModelIndex & index ) const

返迴指針指嚮 QListWidgetItem 關聯給定 index .

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

返迴 Widget 顯示在給定 item .

該函數在 Qt 4.1 引入。

另請參閱 setItemWidget () 和 removeItemWidget ().

[protected] 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

返迴可以用於描述列錶 Widget 項列錶的 MIME 類型列錶。

另請參閱 mimeData ().

void QListWidget:: openPersistentEditor ( QListWidgetItem * item )

打開編輯器為給定 item 。編輯器仍然打開在編輯之後。

另請參閱 closePersistentEditor () 和 isPersistentEditorOpen ().

void QListWidget:: removeItemWidget ( QListWidgetItem * item )

移除設置 Widget 在給定 item .

要從列錶完全移除項 (行),刪除項或使用 takeItem ().

該函數在 Qt 4.3 引入。

另請參閱 itemWidget () 和 setItemWidget ().

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

返迴行包含給定 item .

另請參閱 item ().

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

返迴列錶 Widget 中所有選中項的列錶。

void QListWidget:: setCurrentItem ( QListWidgetItem * item )

將當前項設為 item .

除非選定方式為 NoSelection ,還選中項。

另請參閱 currentItem ().

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

將當前項設為 item ,使用給定 command .

該函數在 Qt 4.4 引入。

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

把當前行設為給定 row ,使用給定 command ,

注意: setter 函數對於特性 currentRow .

該函數在 Qt 4.4 引入。

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

設置 widget 以顯示在給定 item .

此函數隻應用於在列錶 Widget 項位置顯示靜態內容。若想要顯示自定義動態內容或實現自定義編輯器 Widget,使用 QListView 和子類 QStyledItemDelegate 代替。

該函數在 Qt 4.1 引入。

另請參閱 itemWidget (), removeItemWidget (),和 委托類 .

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

重實現: QAbstractItemView::setSelectionModel (QItemSelectionModel *selectionModel).

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

排序列錶 Widget 中的所有項根據指定 order .

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

返迴由此視圖所支持的掉落動作。

另請參閱 Qt::DropActions .

QListWidgetItem *QListWidget:: takeItem ( int row )

移除並返迴項從給定 row 在列錶 Widget 中;否則返迴 nullptr .

從列錶 Widget 移除的項未由 Qt 管理,且需要手動刪除。

另請參閱 insertItem () 和 addItem ().

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

返迴項所占據的視口矩形為 item .