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 , 模型/視圖編程 ,和 設置編輯器範例 .
此特性保持在樹 Widget 中顯示的列數
默認情況下,此特性擁有 1 值。
訪問函數:
| int | columnCount () const |
| void | setColumnCount (int columns ) |
此特性保持頂層項數
默認情況下,此特性擁有 0 值。
訪問函數:
| int | topLevelItemCount () const |
另請參閱 columnCount () 和 currentItem ().
構造樹 Widget 采用給定 parent .
銷毀樹 Widget 及其所有項。
追加 item 作為 Widget 頂層項。
該函數在 Qt 4.1 引入。
另請參閱 insertTopLevelItem ().
追加列錶 items 作為 Widget 頂層項。
另請參閱 insertTopLevelItems ().
[slot]
void
QTreeWidget::
clear
()
通過移除其所有項和選定,清零樹 Widget。
注意: 由於在刪除之前會從樹 Widget 移除各項,返迴值對於 QTreeWidgetItem::treeWidget () 將無效,當從項析構函數調用時。
另請參閱 takeTopLevelItem (), topLevelItemCount (),和 columnCount ().
關閉持久編輯器為 item 以給定 column .
此函數不起作用,若此項和列的組閤沒有打開持久編輯器。
另請參閱 openPersistentEditor ().
[slot]
void
QTreeWidget::
collapseItem
(const
QTreeWidgetItem
*
item
)
關閉 item 。這導緻包含項子級的樹被摺疊。
另請參閱 expandItem (), currentItem (), itemAt (),和 topLevelItem ().
返迴樹 Widget 當前列。
該函數在 Qt 4.1 引入。
另請參閱 setCurrentItem () 和 columnCount ().
返迴樹 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 ().
開始編輯 item 以給定 column 若它可編輯。
[virtual protected]
bool
QTreeWidget::
event
(
QEvent
*
e
)
重實現自 QObject::event ().
[slot]
void
QTreeWidget::
expandItem
(const
QTreeWidgetItem
*
item
)
展開 item 。這導緻包含項子級的樹被展開。
另請參閱 collapseItem (), currentItem (), itemAt (), topLevelItem (),和 itemExpanded ().
返迴的項列錶匹配給定 text ,使用給定 flags ,在給定 column .
返迴用於樹小部件 Header (頭部) 的項。
另請參閱 setHeaderItem ().
[protected]
QModelIndex
QTreeWidget::
indexFromItem
(const
QTreeWidgetItem
*
item
,
int
column
= 0) const
返迴 QModelIndex 關聯給定 item 以給定 column .
注意:
在 Qt 5.7 之前,此函數接受非
const
item
.
另請參閱 itemFromIndex () 和 topLevelItem ().
返迴索引為給定頂層 item ,或 -1 若找不到項。
另請參閱 sortItems () 和 topLevelItemCount ().
插入 item at index 在視圖的頂層。
不會插入項,若已插入在某些地方。
另請參閱 addTopLevelItem () 和 columnCount ().
插入列錶 items at index 在視圖的頂層。
不會插入項,若已插入在某些地方。
該函數在 Qt 4.1 引入。
另請參閱 addTopLevelItems ().
返迴樹 Widget 的不可見根項。
不可見根項提供對樹 Widget 頂層項的訪問透過 QTreeWidgetItem API,使編寫可以按統一方式處理頂層項及其子級的函數成為可能;例如:遞歸函數。
該函數在 Qt 4.2 引入。
返迴
true
若給定
item
is set to show only one section over all columns; otherwise returns
false
.
該函數在 Qt 4.3 引入。
另請參閱 setFirstItemColumnSpanned ().
返迴上方項為給定 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 若沒有點擊項。
返迴指針指嚮項在坐標 p 。坐標相對於樹 Widget 的 viewport() .
另請參閱 visualItemRect ().
這是重載函數。
返迴指針指嚮項在坐標 ( x , y )。坐標相對於樹 Widget 的 viewport() .
返迴下方視覺項為給定 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 ().
返迴單元格顯示 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 ().
打開持久編輯器為 item 以給定 column .
另請參閱 closePersistentEditor ().
刪除設置 Widget 在給定 item 以給定 column .
該函數在 Qt 4.3 引入。
[slot]
void
QTreeWidget::
scrollToItem
(const
QTreeWidgetItem
*
item
,
QAbstractItemView::ScrollHint
hint
= EnsureVisible)
確保 item 可見,捲動視圖若有必要使用指定 hint .
另請參閱 currentItem (), itemAt (),和 topLevelItem ().
返迴所有選定的非隱藏項的列錶。
另請參閱 itemSelectionChanged ().
設置當前 item 在樹 Widget。
除非選定方式為 NoSelection ,還選中項。
另請參閱 currentItem () 和 currentItemChanged ().
設置當前 item 在樹 Widget 和當前列到 column .
該函數在 Qt 4.1 引入。
另請參閱 currentItem ().
設置當前 item 在樹 Widget 和當前列到 column ,使用給定 command .
該函數在 Qt 4.4 引入。
另請參閱 currentItem ().
設置給定 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 ().
設置 Header (頭) item 為樹小部件。頭中每列的標簽由項相應標簽提供。
樹 Widget 擁有項的所有權。
另請參閱 headerItem () 和 setHeaderLabels ().
如同 setHeaderLabels ( QStringList ( label )).
該函數在 Qt 4.2 引入。
為每項添加 Header (頭部) 列按 labels 列錶, 並為每列設置標簽。
注意:setHeaderLabels() 不會移除現有列。
另請參閱 setHeaderItem () 和 setHeaderLabel ().
設置給定 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 ().
返迴用於排序 Widget 內容的列。
該函數在 Qt 4.1 引入。
另請參閱 sortItems ().
排序 Widget 項按指定 order 通過值在給定 column .
另請參閱 sortColumn ().
[virtual protected]
Qt::DropActions
QTreeWidget::
supportedDropActions
() const
返迴由此視圖所支持的掉落動作。
另請參閱 Qt::DropActions .
移除頂層項位於給定 index in the tree and returns it, otherwise returns 0;
另請參閱 insertTopLevelItem (), topLevelItem (),和 topLevelItemCount ().
返迴頂層項位於給定 index , or 0 if the item does not exist.
另請參閱 topLevelItemCount () 和 insertTopLevelItem ().
返迴項所占據的視口矩形為 item .
另請參閱 itemAt ().