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