The QTreeWidget class provides a tree view that uses a predefined tree model. 更多...
| 頭: | #include <QTreeWidget> |
| 繼承: | QTreeView |
| QTreeWidget (QWidget * parent = 0) | |
| ~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 (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() 函數指示是否有啓用排序。
|
|
|
| A Windows XP style tree widget. | A Macintosh style tree widget. | A Plastique style tree widget. |
另請參閱 QTreeWidgetItem , QTreeWidgetItemIterator , QTreeView , 模型/視圖編程 ,和 設置編輯器範例 .
This property holds the number of columns displayed in the tree widget.
默認情況下,此特性擁有 1 值。
訪問函數:
| int | columnCount () const |
| void | setColumnCount (int columns ) |
This property holds the number of top-level items.
默認情況下,此特性擁有 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 項。
The default implementation returns true if the drop was successfully handled by decoding the mime data and inserting it into the model; otherwise it returns 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
(
QTreeWidgetItem
*
item
,
int
column
= 0) const
返迴 QModelIndex assocated with the given item 以給定 column .
另請參閱 itemFromIndex () 和 topLevelItem ().
返迴索引為給定頂層 item ,或 -1 若找不到項。
另請參閱 sortItems () 和 topLevelItemCount ().
插入 item at index 在視圖的頂層。
If the item has already been inserted somewhere else it wont be inserted.
另請參閱 addTopLevelItem () 和 columnCount ().
插入列錶 items at index 在視圖的頂層。
Items that have already been inserted somewhere else wont be inserted.
該函數在 Qt 4.1 引入。
另請參閱 addTopLevelItems ().
返迴樹 Widget 的不可見根項。
不可見根項提供對樹 Widget 頂層項的訪問透過 QTreeWidgetItem API,使編寫可以按統一方式處理頂層項及其子級的函數成為可能;例如:遞歸函數。
該函數在 Qt 4.2 引入。
Returns true if the given 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 assocated with the given 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 .
注意: 樹擁有 Widget 的所有權。
該函數在 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 , the item is also be selected.
另請參閱 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 ().