The QListWidget 類提供基於項的列錶 Widget。 更多...
| 頭: | #include <QListWidget> |
| qmake: | QT += widgets |
| 繼承: | QListView |
| QListWidget (QWidget * parent = Q_NULLPTR) | |
| ~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 | 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 ) |
| virtual void | setSelectionModel (QItemSelectionModel * selectionModel ) |
| 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 (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 ) |
The QListWidget 類提供基於項的列錶 Widget。
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 , 模型/視圖編程 ,和 配置對話框範例 .
此特性保持列錶中的項數,包括任何隱藏項。
訪問函數:
| int | count () const |
此特性保持當前項的行。
從屬當前選定模式,行也可以被選中。
訪問函數:
| int | currentRow () const |
| void | setCurrentRow (int row ) |
| void | setCurrentRow (int row , QItemSelectionModel::SelectionFlags command ) |
通知程序信號:
| void | currentRowChanged (int currentRow ) |
此特性保持是否啓用排序
若此特性為
true
,為列錶啓用排序;若特性為 False,不啓用排序。
默認值為 false。
該特性在 Qt 4.2 引入。
訪問函數:
| bool | isSortingEnabled () const |
| void | setSortingEnabled (bool enable ) |
構造空的 QListWidget 采用給定 parent .
銷毀列錶 Widget 及其所有項。
插入項采用文本 label 在列錶 Widget 末尾。
插入 item 在列錶 Widget 末尾。
警告: A QListWidgetItem 隻可以被添加到 QListWidget 一次。添加相同 QListWidgetItem 多次到 QListWidget 將産生未定義行為。
另請參閱 insertItem ().
插入項采用文本 labels 在列錶 Widget 末尾。
另請參閱 insertItems ().
[slot]
void
QListWidget::
clear
()
移除視圖中的所有項和選定。
警告: 所有項會被永久刪除。
關閉持久編輯器為給定 item .
另請參閱 openPersistentEditor ().
返迴當前項。
另請參閱 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 無效。
[虛擬]
void
QListWidget::
dropEvent
(
QDropEvent
*
event
)
重實現自 QWidget::dropEvent ().
[virtual protected]
bool
QListWidget::
dropMimeData
(
int
index
, const
QMimeData
*
data
,
Qt::DropAction
action
)
處理
data
的提供通過外部拖放操作,結束采用給定
action
以給定
index
。返迴
true
if
data
and
action
可以由模型處理;否則返迴
false
.
另請參閱 supportedDropActions ().
開始編輯 item 若它可編輯。
[virtual protected]
bool
QListWidget::
event
(
QEvent
*
e
)
重實現自 QObject::event ().
查找項具有的文本匹配字符串 text 使用給定 flags .
[protected]
QModelIndex
QListWidget::
indexFromItem
(
QListWidgetItem
*
item
) const
返迴 QModelIndex 關聯給定 item .
插入 item 在列錶中的位置給齣通過 row .
另請參閱 addItem ().
插入項采用文本 label 在列錶 Widget 中於給定位置通過 row .
另請參閱 addItem ().
插入項從列錶 labels 進列錶,開始於給定 row .
另請參閱 insertItem () 和 addItem ().
返迴項占據給定 row 在列錶若有設置;否則返迴 0。
另請參閱 row ().
[signal]
void
QListWidget::
itemActivated
(
QListWidgetItem
*
item
)
此信號被發射當 item 被激活。 item 被激活當用戶點擊或雙擊它時,從屬係統配置。它也被激活當用戶按下激活鍵時 (在 Windows 和 X11 這是 返迴 鍵,在 Mac OS X 它是 Command+O ).
返迴指針指嚮項在坐標 p 。坐標相對列錶小部件 viewport() .
這是重載函數。
返迴指針指嚮項在坐標 ( x , y )。坐標相對列錶小部件 viewport() .
[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 ().
[protected]
QListWidgetItem
*QListWidget::
itemFromIndex
(const
QModelIndex
&
index
) const
返迴指針指嚮 QListWidgetItem 關聯給定 index .
[signal]
void
QListWidget::
itemPressed
(
QListWidgetItem
*
item
)
發射此信號采用指定 item 當在 Widget 項上按下鼠標按鈕時。
另請參閱 itemClicked () 和 itemDoubleClicked ().
[signal]
void
QListWidget::
itemSelectionChanged
()
此信號發射,每當選定改變時。
另請參閱 selectedItems (), QListWidgetItem::isSelected (),和 currentItemChanged ().
返迴 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 () 函數。
若項列錶為空,返迴 0 而不是序列化的空列錶。
[virtual protected]
QStringList
QListWidget::
mimeTypes
() const
返迴可以用於描述列錶 Widget 項列錶的 MIME 類型列錶。
另請參閱 mimeData ().
打開編輯器為給定 item 。編輯器仍然打開在編輯之後。
另請參閱 closePersistentEditor ().
移除設置 Widget 在給定 item .
要從列錶完全移除項 (行),刪除項或使用 takeItem ().
該函數在 Qt 4.3 引入。
另請參閱 itemWidget () 和 setItemWidget ().
返迴行包含給定 item .
另請參閱 item ().
[slot]
void
QListWidget::
scrollToItem
(const
QListWidgetItem
*
item
,
QAbstractItemView::ScrollHint
hint
= EnsureVisible)
捲動視圖若有必要以確保 item 可見。
hint 指定哪裏 item 應該被定位在操作後。
返迴列錶 Widget 中所有選中項的列錶。
將當前項設為 item .
除非選定方式為 NoSelection ,還選中項。
另請參閱 currentItem ().
將當前項設為 item ,使用給定 command .
該函數在 Qt 4.4 引入。
把當前行設為給定 row ,使用給定 command ,
該函數在 Qt 4.4 引入。
注意: setter 函數對於特性 currentRow .
設置 widget 以顯示在給定 item .
此函數隻應用於在列錶 Widget 項位置顯示靜態內容。若想要顯示自定義動態內容或實現自定義編輯器 Widget,使用 QListView 和子類 QItemDelegate 代替。
該函數在 Qt 4.1 引入。
另請參閱 itemWidget (), removeItemWidget (),和 委托類 .
[虛擬]
void
QListWidget::
setSelectionModel
(
QItemSelectionModel
*
selectionModel
)
重實現自 QAbstractItemView::setSelectionModel ().
排序列錶 Widget 中的所有項根據指定 order .
[virtual protected]
Qt::DropActions
QListWidget::
supportedDropActions
() const
返迴由此視圖所支持的掉落動作。
另請參閱 Qt::DropActions .
移除並返迴項從給定 row 在列錶 Widget;否則返迴 0。
從列錶 Widget 移除的項未由 Qt 管理,且需要手動刪除。
另請參閱 insertItem () 和 addItem ().
返迴項所占據的視口矩形為 item .