QTreeWidget 類

The QTreeWidget class provides a tree view that uses a predefined tree model. 更多...

頭: #include <QTreeWidget>
qmake: QT += widgets
繼承: QTreeView

特性

公共函數

QTreeWidget (QWidget * parent = Q_NULLPTR)
~QTreeWidget ()
void addTopLevelItem (QTreeWidgetItem * item )
void addTopLevelItems (const QList<QTreeWidgetItem *> & items )
void closePersistentEditor (QTreeWidgetItem * item , int column = 0)
int columnCount () const
int currentColumn () const
QTreeWidgetItem * currentItem () const
void editItem (QTreeWidgetItem * item , int column = 0)
QList<QTreeWidgetItem *> findItems (const QString & text , Qt::MatchFlags flags , int column = 0) const
QTreeWidgetItem * headerItem () const
int indexOfTopLevelItem (QTreeWidgetItem * item ) const
void insertTopLevelItem (int index , QTreeWidgetItem * item )
void insertTopLevelItems (int index , const QList<QTreeWidgetItem *> & items )
QTreeWidgetItem * invisibleRootItem () const
bool isFirstItemColumnSpanned (const QTreeWidgetItem * item ) const
QTreeWidgetItem * itemAbove (const QTreeWidgetItem * item ) const
QTreeWidgetItem * itemAt (const QPoint & p ) const
QTreeWidgetItem * itemAt (int x , int y ) const
QTreeWidgetItem * itemBelow (const QTreeWidgetItem * item ) const
QWidget * itemWidget (QTreeWidgetItem * item , int column ) const
void openPersistentEditor (QTreeWidgetItem * item , int column = 0)
void removeItemWidget (QTreeWidgetItem * item , int column )
QList<QTreeWidgetItem *> selectedItems () const
void setColumnCount (int columns )
void setCurrentItem (QTreeWidgetItem * item )
void setCurrentItem (QTreeWidgetItem * item , int column )
void setCurrentItem (QTreeWidgetItem * item , int column , QItemSelectionModel::SelectionFlags command )
void setFirstItemColumnSpanned (const QTreeWidgetItem * item , bool span )
void setHeaderItem (QTreeWidgetItem * item )
void setHeaderLabel (const QString & label )
void setHeaderLabels (const QStringList & labels )
void setItemWidget (QTreeWidgetItem * item , int column , QWidget * widget )
int sortColumn () const
void sortItems (int column , Qt::SortOrder order )
QTreeWidgetItem * takeTopLevelItem (int index )
QTreeWidgetItem * topLevelItem (int index ) const
int topLevelItemCount () const
QRect visualItemRect (const QTreeWidgetItem * item ) const

重實現公共函數

virtual void setSelectionModel (QItemSelectionModel * selectionModel )

公共槽

void clear ()
void collapseItem (const QTreeWidgetItem * item )
void expandItem (const QTreeWidgetItem * item )
void scrollToItem (const QTreeWidgetItem * item , QAbstractItemView::ScrollHint hint = EnsureVisible)

信號

void currentItemChanged (QTreeWidgetItem * current , QTreeWidgetItem * previous )
void itemActivated (QTreeWidgetItem * item , int column )
void itemChanged (QTreeWidgetItem * item , int column )
void itemClicked (QTreeWidgetItem * item , int column )
void itemCollapsed (QTreeWidgetItem * item )
void itemDoubleClicked (QTreeWidgetItem * item , int column )
void itemEntered (QTreeWidgetItem * item , int column )
void itemExpanded (QTreeWidgetItem * item )
void itemPressed (QTreeWidgetItem * item , int column )
void itemSelectionChanged ()

保護函數

virtual bool dropMimeData (QTreeWidgetItem * parent , int index , const QMimeData * data , Qt::DropAction action )
QModelIndex indexFromItem (const QTreeWidgetItem * item , int column = 0) const
QTreeWidgetItem * itemFromIndex (const QModelIndex & index ) const
virtual QMimeData * mimeData (const QList<QTreeWidgetItem *> items ) const
virtual QStringList mimeTypes () const
virtual Qt::DropActions supportedDropActions () const

重實現保護函數

virtual void dropEvent (QDropEvent * event )
virtual bool event (QEvent * e )

額外繼承成員

詳細描述

The QTreeWidget class provides a tree view that uses a predefined tree model.

The QTreeWidget class is a convenience class that provides a standard tree widget with a classic item-based interface similar to that used by the QListView 類在 Qt 3。此類基於 Qt 模型/視圖體係結構,並使用默認模型來保持項,其中每個項是 QTreeWidgetItem .

不需要靈活模型/視圖框架的開發者可以使用此類,非常輕鬆地創建簡單分層列錶。更靈活方式涉及組閤 QTreeView 采用標準項模型。這允許將數據存儲與其錶示分開。

以最簡單形式,可以按以下方式構造樹 Widget:

QTreeWidget *treeWidget = new QTreeWidget();
treeWidget->setColumnCount(1);
QList<QTreeWidgetItem *> items;
for (int i = 0; i < 10; ++i)
    items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("item: %1").arg(i))));
treeWidget->insertTopLevelItems(0, items);
					

在可以把項添加到樹 Widget 之前,必須設置列數采用 setColumnCount ()。這允許每項擁有一個或多個標簽或其它裝飾。可以找到所用列數采用 columnCount () 函數。

樹可以擁有包含 Widget 每列區間的 Header (頭)。為每區間設置標簽的最簡單方式是通過提供字符串列錶采用 setHeaderLabels (),但可以構造自定義 Header (頭) 采用 QTreeWidgetItem 並插入樹采用 setHeaderItem () 函數。

樹中的項可以根據預定義排序次序按列排序。若排序被啓用,用戶可以通過點擊列 Header (頭) 排序項。可以啓用或禁用排序通過調用 setSortingEnabled() isSortingEnabled() 函數指示是否有啓用排序。

另請參閱 QTreeWidgetItem , QTreeWidgetItemIterator , QTreeView , 模型/視圖編程 ,和 設置編輯器範例 .

特性文檔編製

columnCount : int

此特性保持在樹 Widget 中顯示的列數

默認情況下,此特性擁有 1 值。

訪問函數:

int columnCount () const
void setColumnCount (int columns )

topLevelItemCount : const int

此特性保持頂層項數

默認情況下,此特性擁有 0 值。

訪問函數:

int topLevelItemCount () const

另請參閱 columnCount () 和 currentItem ().

成員函數文檔編製

QTreeWidget:: QTreeWidget ( QWidget * parent = Q_NULLPTR)

構造樹 Widget 采用給定 parent .

QTreeWidget:: ~QTreeWidget ()

銷毀樹 Widget 及其所有項。

void QTreeWidget:: addTopLevelItem ( QTreeWidgetItem * item )

追加 item 作為 Widget 頂層項。

該函數在 Qt 4.1 引入。

另請參閱 insertTopLevelItem ().

void QTreeWidget:: addTopLevelItems (const QList < QTreeWidgetItem *> & items )

追加列錶 items 作為 Widget 頂層項。

另請參閱 insertTopLevelItems ().

[slot] void QTreeWidget:: clear ()

通過移除其所有項和選定,清零樹 Widget。

注意: 由於在刪除之前會從樹 Widget 移除各項,返迴值對於 QTreeWidgetItem::treeWidget () 將無效,當從項析構函數調用時。

另請參閱 takeTopLevelItem (), topLevelItemCount (),和 columnCount ().

void QTreeWidget:: closePersistentEditor ( QTreeWidgetItem * item , int column = 0)

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

此函數不起作用,若此項和列的組閤沒有打開持久編輯器。

另請參閱 openPersistentEditor ().

[slot] void QTreeWidget:: collapseItem (const QTreeWidgetItem * item )

關閉 item 。這導緻包含項子級的樹被摺疊。

另請參閱 expandItem (), currentItem (), itemAt (),和 topLevelItem ().

int QTreeWidget:: currentColumn () const

返迴樹 Widget 當前列。

該函數在 Qt 4.1 引入。

另請參閱 setCurrentItem () 和 columnCount ().

QTreeWidgetItem *QTreeWidget:: currentItem () const

返迴樹 Widget 中的當前項。

另請參閱 setCurrentItem () 和 currentItemChanged ().

[signal] void QTreeWidget:: currentItemChanged ( QTreeWidgetItem * current , QTreeWidgetItem * previous )

此信號被發射在當前項改變時。當前項指定通過 current ,且這替換 previous 當前項。

另請參閱 setCurrentItem ().

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

重實現自 QWidget::dropEvent ().

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

處理 data 的提供是通過結束拖放操作,按給定 action index 以給定 parent 項。

默認實現返迴 true 若掉落成功處理通過解碼 MIME 數據並將其插入模型;否則它返迴 false .

另請參閱 supportedDropActions ().

void QTreeWidget:: editItem ( QTreeWidgetItem * item , int column = 0)

開始編輯 item 以給定 column 若它可編輯。

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

重實現自 QObject::event ().

[slot] void QTreeWidget:: expandItem (const QTreeWidgetItem * item )

展開 item 。這導緻包含項子級的樹被展開。

另請參閱 collapseItem (), currentItem (), itemAt (), topLevelItem (),和 itemExpanded ().

QList < QTreeWidgetItem *> QTreeWidget:: findItems (const QString & text , Qt::MatchFlags flags , int column = 0) const

返迴的項列錶匹配給定 text ,使用給定 flags ,在給定 column .

QTreeWidgetItem *QTreeWidget:: headerItem () const

返迴用於樹小部件 Header (頭部) 的項。

另請參閱 setHeaderItem ().

[protected] QModelIndex QTreeWidget:: indexFromItem (const QTreeWidgetItem * item , int column = 0) const

返迴 QModelIndex 關聯給定 item 以給定 column .

注意: 在 Qt 5.7 之前,此函數接受非 const item .

另請參閱 itemFromIndex () 和 topLevelItem ().

int QTreeWidget:: indexOfTopLevelItem ( QTreeWidgetItem * item ) const

返迴索引為給定頂層 item ,或 -1 若找不到項。

另請參閱 sortItems () 和 topLevelItemCount ().

void QTreeWidget:: insertTopLevelItem ( int index , QTreeWidgetItem * item )

插入 item at index 在視圖的頂層。

不會插入項,若已插入在某些地方。

另請參閱 addTopLevelItem () 和 columnCount ().

void QTreeWidget:: insertTopLevelItems ( int index , const QList < QTreeWidgetItem *> & items )

插入列錶 items at index 在視圖的頂層。

不會插入項,若已插入在某些地方。

該函數在 Qt 4.1 引入。

另請參閱 addTopLevelItems ().

QTreeWidgetItem *QTreeWidget:: invisibleRootItem () const

返迴樹 Widget 的不可見根項。

不可見根項提供對樹 Widget 頂層項的訪問透過 QTreeWidgetItem API,使編寫可以按統一方式處理頂層項及其子級的函數成為可能;例如:遞歸函數。

該函數在 Qt 4.2 引入。

bool QTreeWidget:: isFirstItemColumnSpanned (const QTreeWidgetItem * item ) const

返迴 true 若給定 item is set to show only one section over all columns; otherwise returns false .

該函數在 Qt 4.3 引入。

另請參閱 setFirstItemColumnSpanned ().

QTreeWidgetItem *QTreeWidget:: itemAbove (const QTreeWidgetItem * item ) const

返迴上方項為給定 item .

該函數在 Qt 4.3 引入。

[signal] void QTreeWidget:: itemActivated ( QTreeWidgetItem * item , int column )

此信號被發射當用戶通過單擊或雙擊激活項時 (從屬平颱,即:在 QStyle::SH_ItemView_ActivateItemOnSingleClick 樣式提示) 或按下特殊鍵 (如: Enter ).

指定 item is the item that was clicked, or 0 if no item was clicked. The column 是被點擊的項的列,或 -1 若沒有點擊項。

QTreeWidgetItem *QTreeWidget:: itemAt (const QPoint & p ) const

返迴指針指嚮項在坐標 p 。坐標相對於樹 Widget 的 viewport() .

另請參閱 visualItemRect ().

QTreeWidgetItem *QTreeWidget:: itemAt ( int x , int y ) const

這是重載函數。

返迴指針指嚮項在坐標 ( x , y )。坐標相對於樹 Widget 的 viewport() .

QTreeWidgetItem *QTreeWidget:: itemBelow (const QTreeWidgetItem * item ) const

返迴下方視覺項為給定 item .

該函數在 Qt 4.3 引入。

[signal] void QTreeWidget:: itemChanged ( QTreeWidgetItem * item , int column )

此信號被發射當內容在 column 以指定 item 改變。

[signal] void QTreeWidget:: itemClicked ( QTreeWidgetItem * item , int column )

此信號被發射當用戶在 Widget 內點擊時。

指定 item 是被點擊項。 column 是項的被點擊列。若沒有點擊項,不會發射信號。

[signal] void QTreeWidget:: itemCollapsed ( QTreeWidgetItem * item )

此信號發射,當指定 item 被摺疊以便不顯示其子級。

注意: 此信號不會被發射若項改變其狀態當 collapseAll () 被援引。

另請參閱 QTreeWidgetItem::isExpanded (), itemExpanded (),和 collapseItem ().

[signal] void QTreeWidget:: itemDoubleClicked ( QTreeWidgetItem * item , int column )

此信號被發射當用戶在 Widget 內雙擊時。

指定 item is the item that was clicked, or 0 if no item was clicked. The column 是項的被點擊列。若沒有項被雙擊,不會發射信號。

[signal] void QTreeWidget:: itemEntered ( QTreeWidgetItem * item , int column )

此信號發射,當鼠標光標進入 item 覆蓋指定 column . QTreeWidget 需要啓用鼠標追蹤,為使此特徵能工作。

[signal] void QTreeWidget:: itemExpanded ( QTreeWidgetItem * item )

此信號發射,當指定 item 被展開以便顯示其所有子級。

注意: 此信號不會被發射若項改變其狀態當 expandAll () 被援引。

另請參閱 setItemExpanded (), QTreeWidgetItem::isExpanded (), itemCollapsed (),和 expandItem ().

[protected] QTreeWidgetItem *QTreeWidget:: itemFromIndex (const QModelIndex & index ) const

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

另請參閱 indexFromItem ().

[signal] void QTreeWidget:: itemPressed ( QTreeWidgetItem * item , int column )

此信號被發射當用戶在 Widget 內按下鼠標按鈕時。

指定 item is the item that was clicked, or 0 if no item was clicked. The column 是被點擊的項的列,或 -1 若沒有點擊項。

[signal] void QTreeWidget:: itemSelectionChanged ()

此信號被發射當樹 Widget 選定改變時。可以找到當前選定采用 selectedItems ().

QWidget *QTreeWidget:: itemWidget ( QTreeWidgetItem * item , int column ) const

返迴單元格顯示 Widget 指定通過 item 和給定 column .

該函數在 Qt 4.1 引入。

另請參閱 setItemWidget ().

[virtual protected] QMimeData *QTreeWidget:: mimeData (const QList < QTreeWidgetItem *> items ) const

返迴的對象包含序列化描述為指定 items 。用於描述項的格式獲取自 mimeTypes () 函數。

若項列錶為空,返迴 0 而不是序列化空列錶。

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

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

另請參閱 mimeData ().

void QTreeWidget:: openPersistentEditor ( QTreeWidgetItem * item , int column = 0)

打開持久編輯器為 item 以給定 column .

另請參閱 closePersistentEditor ().

void QTreeWidget:: removeItemWidget ( QTreeWidgetItem * item , int column )

刪除設置 Widget 在給定 item 以給定 column .

該函數在 Qt 4.3 引入。

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

確保 item 可見,捲動視圖若有必要使用指定 hint .

另請參閱 currentItem (), itemAt (),和 topLevelItem ().

QList < QTreeWidgetItem *> QTreeWidget:: selectedItems () const

返迴所有選定的非隱藏項的列錶。

另請參閱 itemSelectionChanged ().

void QTreeWidget:: setCurrentItem ( QTreeWidgetItem * item )

設置當前 item 在樹 Widget。

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

另請參閱 currentItem () 和 currentItemChanged ().

void QTreeWidget:: setCurrentItem ( QTreeWidgetItem * item , int column )

設置當前 item 在樹 Widget 和當前列到 column .

該函數在 Qt 4.1 引入。

另請參閱 currentItem ().

void QTreeWidget:: setCurrentItem ( QTreeWidgetItem * item , int column , QItemSelectionModel::SelectionFlags command )

設置當前 item 在樹 Widget 和當前列到 column ,使用給定 command .

該函數在 Qt 4.4 引入。

另請參閱 currentItem ().

void QTreeWidget:: setFirstItemColumnSpanned (const QTreeWidgetItem * item , bool span )

設置給定 item to only show one section for all columns if span is true; otherwise the item will show one section per column.

該函數在 Qt 4.3 引入。

另請參閱 isFirstItemColumnSpanned ().

void QTreeWidget:: setHeaderItem ( QTreeWidgetItem * item )

設置 Header (頭) item 為樹小部件。頭中每列的標簽由項相應標簽提供。

樹 Widget 擁有項的所有權。

另請參閱 headerItem () 和 setHeaderLabels ().

void QTreeWidget:: setHeaderLabel (const QString & label )

如同 setHeaderLabels ( QStringList ( label )).

該函數在 Qt 4.2 引入。

void QTreeWidget:: setHeaderLabels (const QStringList & labels )

為每項添加 Header (頭部) 列按 labels 列錶, 並為每列設置標簽。

注意:setHeaderLabels() 不會移除現有列。

另請參閱 setHeaderItem () 和 setHeaderLabel ().

void QTreeWidget:: setItemWidget ( QTreeWidgetItem * item , int column , QWidget * widget )

設置給定 widget 以顯示在指定單元格通過給定 item and column .

給定 widget 's autoFillBackground 特性必須被設為 true,否則 Widget 背景將透明,同時展示模型數據和樹 Widget 項。

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

不可以調用此函數在設置項層次結構之前,即 QTreeWidgetItem 將保持 widget 必須被添加到視圖之後 widget 有設置。

注意: 樹擁有 Widget 的所有權。

該函數在 Qt 4.1 引入。

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

[虛擬] void QTreeWidget:: setSelectionModel ( QItemSelectionModel * selectionModel )

重實現自 QAbstractItemView::setSelectionModel ().

int QTreeWidget:: sortColumn () const

返迴用於排序 Widget 內容的列。

該函數在 Qt 4.1 引入。

另請參閱 sortItems ().

void QTreeWidget:: sortItems ( int column , Qt::SortOrder order )

排序 Widget 項按指定 order 通過值在給定 column .

另請參閱 sortColumn ().

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

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

另請參閱 Qt::DropActions .

QTreeWidgetItem *QTreeWidget:: takeTopLevelItem ( int index )

移除頂層項位於給定 index in the tree and returns it, otherwise returns 0;

另請參閱 insertTopLevelItem (), topLevelItem (),和 topLevelItemCount ().

QTreeWidgetItem *QTreeWidget:: topLevelItem ( int index ) const

返迴頂層項位於給定 index , or 0 if the item does not exist.

另請參閱 topLevelItemCount () 和 insertTopLevelItem ().

QRect QTreeWidget:: visualItemRect (const QTreeWidgetItem * item ) const

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

另請參閱 itemAt ().