檢視原始碼 wxTreeCtrl (wx v2.4.3)
樹狀控制項以階層方式呈現資訊,其中的項目可以展開以顯示更多項目。
樹狀控制項中的項目由 wxTreeItemId
(在 wx 中未實作) 控制代碼引用,可以透過呼叫 wxTreeItemId::IsOk()
(在 wx 中未實作) 來測試其有效性。
一個類似的控制項,在 GTK+ 和 macOS 上都有完全的原生實作是 wxDataViewTreeCtrl
(在 wx 中未實作)。
若要攔截來自樹狀控制項的事件,請使用 wxTreeEvent
中描述的事件表格巨集。
樣式
這個類別支援以下樣式
wxTR_EDIT_LABELS:如果您希望使用者能夠編輯樹狀控制項中的標籤,請使用此樣式。
wxTR_NO_BUTTONS:為了方便記錄不繪製按鈕。
wxTR_HAS_BUTTONS:使用此樣式可在父項目的左側顯示 + 和 - 按鈕。
wxTR_TWIST_BUTTONS:選擇 +/
-
按鈕的替代樣式,並顯示旋轉(「扭曲」)的箭頭。目前,此樣式僅在 Microsoft Windows Vista 及更新版本的 Windows 下實作,並在其他平台上被忽略,因為啟用它等同於使用wxSystemThemedControl::EnableSystemTheme()
(在 wx 中未實作)。wxTR_NO_LINES:使用此樣式可隱藏垂直級別連接線。
wxTR_FULL_ROW_HIGHLIGHT:使用此樣式可讓背景顏色和選取反白延伸到樹狀控制項視窗的整個水平列。(除非您也指定
wxTR_NO_LINES
,否則此旗標在 Windows 下會被忽略。)wxTR_LINES_AT_ROOT:使用此樣式可顯示通往根節點的線條(除非也使用
wxTR_NO_LINES
,在這種情況下不會顯示任何線條)。請注意,在 MSW 版本中,如果省略此樣式,不僅線條不會顯示,用於展開根項目的按鈕也不會顯示,這可能會出乎意料,因此建議始終使用它。wxTR_HIDE_ROOT:使用此樣式可抑制根節點的顯示,有效地使第一級節點顯示為一系列根節點。
wxTR_ROW_LINES:使用此樣式可在顯示的列之間繪製對比邊框。
wxTR_HAS_VARIABLE_ROW_HEIGHT:使用此樣式可使列高度剛好足以容納內容。如果未設定,則所有列都使用最大的列高度。預設情況下,此旗標未設定。僅適用於通用版本。
wxTR_SINGLE:為了方便記錄一次只能選取一個項目。選取另一個項目會取消選取目前的選取項目(如果有的話)。這是預設值。
wxTR_MULTIPLE:使用此樣式可允許選取一系列項目。如果選取第二個範圍,則會取消選取目前的範圍(如果有的話)。
wxTR_DEFAULT_STYLE:最接近特定工具組原生控制項預設值的旗標集合。
另請參閱 overview_windowstyles。
Win32
注意事項:
wxTreeCtrl
類別使用 Win32 下的標準通用樹狀檢視控制項,該控制項在系統程式庫 comctl32.dll 中實作。已知此程式庫的某些版本在處理樹狀控制項的顏色時存在錯誤:常見的症狀是展開的項目會在它們後面留下黑色(或其他錯誤著色)的背景,特別是對於使用非預設背景顏色的控制項。建議的解決方案是將 comctl32.dll 升級到較新的版本:請參閱 http://www.microsoft.com/downloads/details.aspx?familyid=cb2cf3a2-8025-4e8f-8511-9b476a8d35d2
請參閱
此類別繼承自以下類別,並且可以使用其函式:
wxWidgets 文件:wxTreeCtrl
事件
從此類別發出的事件類型
摘要
函式
將根節點新增至樹狀結構,並傳回新的項目。
將項目附加到 parent
所識別的分支末端,並傳回新的項目 ID。
設定一般影像清單。
設定狀態影像清單。
摺疊指定的項目。
摺疊指定的項目並移除所有子項目。
建立樹狀控制項。
刪除指定的項目。
刪除控制項中的所有項目。
刪除指定項目的所有子項目(但不刪除項目本身)。
銷毀物件
開始編輯指定 item
的標籤。
捲動和/或展開項目,以確保指定的項目可見。
展開指定的項目。
擷取 item
的邊界矩形。
傳回分支中的項目數。
傳回控制項中的項目數。
傳回目前用於編輯標籤的編輯控制項。
傳回第一個子項目;呼叫 getNextChild/3
以取得下一個子項目。
傳回第一個可見項目。
傳回一般影像清單。
傳回目前的樹狀控制項縮排。
傳回項目的背景顏色。
傳回與項目關聯的樹狀項目資料。
傳回項目標籤的字型。
取得指定的項目影像。
傳回項目的父項目。
傳回項目標籤。
傳回項目標籤的顏色。
傳回項目的最後一個子項目(如果此項目沒有子項目,則傳回無效的樹狀項目)。
傳回下一個子項目;呼叫 getFirstChild/2
以取得第一個子項目。
傳回指定項目的下一個同層級項目;呼叫 getPrevSibling/2
以取得上一個同層級項目。
傳回下一個可見項目,如果此項目是最後一個可見項目,則傳回無效的項目。
傳回指定項目的上一個同層級項目;呼叫 getNextSibling/2
以取得下一個同層級項目。
傳回上一個可見項目,如果此項目是第一個可見項目,則傳回無效的項目。
傳回樹狀控制項的根項目。
傳回選取項目,如果沒有選取項目,則傳回無效的項目。
將目前選取的項目填入傳入的樹狀項目陣列中。
傳回狀態影像清單(從中取得應用程式定義的狀態影像)。
計算給定 point
下的項目(如果有的話),傳回此點的樹狀項目 ID 以及額外的資訊 flags
。
在給定項目 (previous
) 之後插入項目。
如果給定項目處於粗體狀態,則傳回 true。
如果項目已展開(僅在它有子項目時才有意義),則傳回 true。
如果選取了該項目,則傳回 true。
如果項目有效,則傳回 true。
如果項目在螢幕上可見,則傳回 true。
如果項目有子項目,則傳回 true。
預設建構函式。
建構函式,建立並顯示樹狀控制項。
將項目附加為 parent
的第一個子項目,並傳回新的項目 ID。
將指定的項目捲動到檢視中。
選取指定的項目。
設定一般影像清單。
設定樹狀控制項的縮排。
設定項目背景的顏色。
如果 bold
參數為 true,則使項目以粗體字型顯示,否則重設為正常狀態。
設定項目的客戶端資料。
為拖放動作提供項目的視覺回饋,這在將某些內容從外部拖曳到樹狀控制項上時很有用(與樹狀控制項內部的拖放操作相反,後者已在內部實作)。
設定項目的字型。
強制顯示項目旁邊的按鈕。
設定指定項目的影像。
設定項目標籤。
設定項目文字的顏色。
設定狀態影像清單(從中取得應用程式定義的狀態影像)。
設定與樹狀控制項顯示相關的模式旗標。
使用 OnCompareItems()
對指定項目的子項目進行排序(未在 wx 中實作)。
在折疊和展開狀態之間切換指定的項目。
在選取和未選取狀態之間切換指定的項目。
移除目前選取項目的選取狀態(如果有)。
如果控制項沒有 wxTR_MULTIPLE
樣式,此函式行為與 unselect/1
相同,如果它具有此樣式,則移除所有項目的選取狀態。
取消選取指定的項目。
類型
-type wxTreeCtrl() :: wx:wx_object().
函式
-spec addRoot(This, Text) -> integer() when This :: wxTreeCtrl(), Text :: unicode:chardata().
-spec addRoot(This, Text, [Option]) -> integer() when This :: wxTreeCtrl(), Text :: unicode:chardata(), Option :: {image, integer()} | {selectedImage, integer()} | {data, term()}.
將根節點新增至樹狀結構,並傳回新的項目。
image
和 selImage
參數是在正常影像清單中的索引,分別指定要用於未選取和選取項目的影像。如果 image
> -1 且 selImage
為 -1,則選取和未選取項目都使用相同的影像。
-spec appendItem(This, Parent, Text) -> integer() when This :: wxTreeCtrl(), Parent :: integer(), Text :: unicode:chardata().
-spec appendItem(This, Parent, Text, [Option]) -> integer() when This :: wxTreeCtrl(), Parent :: integer(), Text :: unicode:chardata(), Option :: {image, integer()} | {selectedImage, integer()} | {data, term()}.
將項目附加到 parent
所識別的分支末端,並傳回新的項目 ID。
image
和 selImage
參數是在正常影像清單中的索引,分別指定要用於未選取和選取項目的影像。如果 image
> -1 且 selImage
為 -1,則選取和未選取項目都使用相同的影像。
-spec assignImageList(This, ImageList) -> ok when This :: wxTreeCtrl(), ImageList :: wxImageList:wxImageList().
設定一般影像清單。
使用此方法指派的影像清單將由 wxTreeCtrl
自動刪除(即它取得清單的所有權)。
請參閱:setImageList/2
-spec assignStateImageList(This, ImageList) -> ok when This :: wxTreeCtrl(), ImageList :: wxImageList:wxImageList().
設定狀態影像清單。
使用此方法指派的影像清單將由 wxTreeCtrl
自動刪除(即它取得清單的所有權)。
-spec collapse(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
摺疊指定的項目。
-spec collapseAndReset(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
摺疊指定的項目並移除所有子項目。
-spec create(This, Parent) -> boolean() when This :: wxTreeCtrl(), Parent :: wxWindow:wxWindow().
-spec create(This, Parent, [Option]) -> boolean() when This :: wxTreeCtrl(), Parent :: wxWindow:wxWindow(), Option :: {id, integer()} | {pos, {X :: integer(), Y :: integer()}} | {size, {W :: integer(), H :: integer()}} | {style, integer()} | {validator, wx:wx_object()}.
建立樹狀控制項。
請參閱 new/2
以取得更多詳細資訊。
-spec delete(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
刪除指定的項目。
將會產生 EVT_TREE_DELETE_ITEM
事件。
此函式可能會導致後續呼叫 getNextChild/3
失敗。
-spec deleteAllItems(This) -> ok when This :: wxTreeCtrl().
刪除控制項中的所有項目。
此函式會為每個正在刪除的項目產生 wxEVT_TREE_DELETE_ITEM
事件,包括根項目(如果顯示),也就是說,除非使用 wxTR_HIDE_ROOT 樣式。
-spec deleteChildren(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
刪除指定項目的所有子項目(但不刪除項目本身)。
將為每個正在刪除的項目產生 wxEVT_TREE_DELETE_ITEM
事件。
如果您已呼叫 setItemHasChildren/3
,則可能需要再次呼叫它,因為 deleteChildren/2
不會自動清除設定。
-spec destroy(This :: wxTreeCtrl()) -> ok.
銷毀物件
-spec editLabel(This, Item) -> wxTextCtrl:wxTextCtrl() when This :: wxTreeCtrl(), Item :: integer().
開始編輯指定 item
的標籤。
此函式會產生 EVT_TREE_BEGIN_LABEL_EDIT
事件,該事件可以否決,因此不會出現文字控制項進行就地編輯。
如果使用者變更了標籤(即,他/她未按下 ESC 或在未變更的情況下離開文字控制項),則會傳送 EVT_TREE_END_LABEL_EDIT
事件,該事件也可以否決。
請參閱:wxTreeEvent
-spec ensureVisible(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
捲動和/或展開項目,以確保指定的項目可見。
即使在視窗凍結時,也可以使用此方法,而且可以正常運作(請參閱 wxWindow:freeze/1
)。
-spec expand(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
展開指定的項目。
-spec getBoundingRect(This, Item, [Option]) -> Result when Result :: {Res :: boolean(), Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}}, This :: wxTreeCtrl(), Item :: integer(), Option :: {textOnly, boolean()}.
擷取 item
的邊界矩形。
如果 textOnly
為 true,則僅會傳回項目標籤周圍的矩形,否則也會考慮項目影像。
如果成功擷取矩形,則傳回值為 true;如果未擷取矩形,則傳回值為 false(在此情況下,rect
不會變更)- 例如,如果項目目前不可見。
請注意,矩形座標是邏輯座標,而不是實體座標。因此,例如,如果樹狀結構有水平捲軸且其位置不是 0,則 x 座標可能是負數。
-spec getChildrenCount(This, Item) -> integer() when This :: wxTreeCtrl(), Item :: integer().
-spec getChildrenCount(This, Item, [Option]) -> integer() when This :: wxTreeCtrl(), Item :: integer(), Option :: {recursively, boolean()}.
傳回分支中的項目數。
如果 recursively
為 true,則傳回子代的總數,否則僅計算一個層級的子代。
-spec getCount(This) -> integer() when This :: wxTreeCtrl().
傳回控制項中的項目數。
-spec getEditControl(This) -> wxTextCtrl:wxTextCtrl() when This :: wxTreeCtrl().
傳回目前用於編輯標籤的編輯控制項。
如果沒有正在編輯的標籤,則傳回 NULL。
注意:目前僅為 wxMSW 實作。
-spec getFirstChild(This, Item) -> Result when Result :: {Res :: integer(), Cookie :: integer()}, This :: wxTreeCtrl(), Item :: integer().
傳回第一個子項目;呼叫 getNextChild/3
以取得下一個子項目。
對於此列舉函式,您必須傳入 'cookie' 參數,該參數對於應用程式而言是不透明的,但對於程式庫而言是必要的,才能使這些函式可重入(即,允許同時在同一個物件上進行多個列舉)。傳遞給 getFirstChild/2
和 getNextChild/3
的 Cookie 應該是相同的變數。
如果沒有進一步的子代,則傳回無效的樹狀結構項目(即 wxTreeItemId::IsOk()
(未在 wx 中實作)傳回 false)。
請參閱
-spec getFirstVisibleItem(This) -> integer() when This :: wxTreeCtrl().
傳回第一個可見項目。
-spec getImageList(This) -> wxImageList:wxImageList() when This :: wxTreeCtrl().
傳回一般影像清單。
-spec getIndent(This) -> integer() when This :: wxTreeCtrl().
傳回目前的樹狀控制項縮排。
-spec getItemBackgroundColour(This, Item) -> wx:wx_colour4() when This :: wxTreeCtrl(), Item :: integer().
傳回項目的背景顏色。
-spec getItemData(This, Item) -> term() when This :: wxTreeCtrl(), Item :: integer().
傳回與項目關聯的樹狀項目資料。
-spec getItemFont(This, Item) -> wxFont:wxFont() when This :: wxTreeCtrl(), Item :: integer().
傳回項目標籤的字型。
如果尚未明確使用 setItemFont/3
為指定的 item
設定字型,則傳回無效的 ?wxNullFont 字型。 wxWindow:getFont/1
可用於擷取用於沒有任何特定字型的項目的全域樹狀控制項字型。
-spec getItemImage(This, Item) -> integer() when This :: wxTreeCtrl(), Item :: integer().
-spec getItemImage(This, Item, [Option]) -> integer() when This :: wxTreeCtrl(), Item :: integer(), Option :: {which, wx:wx_enum()}.
取得指定的項目影像。
which
的值可能是
?wxTreeItemIcon_Normal:取得正常項目影像。
?wxTreeItemIcon_Selected:取得選取的項目影像(即目前選取項目時顯示的影像)。
?wxTreeItemIcon_Expanded:取得展開的影像(這僅對具有子代的項目才有意義 - 然後,當項目展開時會顯示此影像,而當項目折疊時會顯示正常影像)。
?wxTreeItemIcon_SelectedExpanded:取得選取的展開影像(當目前選取展開的項目時顯示)。
-spec getItemParent(This, Item) -> integer() when This :: wxTreeCtrl(), Item :: integer().
傳回項目的父項目。
-spec getItemText(This, Item) -> unicode:charlist() when This :: wxTreeCtrl(), Item :: integer().
傳回項目標籤。
-spec getItemTextColour(This, Item) -> wx:wx_colour4() when This :: wxTreeCtrl(), Item :: integer().
傳回項目標籤的顏色。
-spec getLastChild(This, Item) -> integer() when This :: wxTreeCtrl(), Item :: integer().
傳回項目的最後一個子項目(如果此項目沒有子項目,則傳回無效的樹狀項目)。
請參閱
-spec getNextChild(This, Item, Cookie) -> Result when Result :: {Res :: integer(), Cookie :: integer()}, This :: wxTreeCtrl(), Item :: integer(), Cookie :: integer().
傳回下一個子項目;呼叫 getFirstChild/2
以取得第一個子項目。
對於此列舉函式,您必須傳入 'cookie' 參數,該參數對於應用程式而言是不透明的,但對於程式庫而言是必要的,才能使這些函式可重入(即,允許同時在同一個物件上進行多個列舉)。傳遞給 getFirstChild/2
和 getNextChild/3
的 Cookie 應該是相同的。
如果沒有進一步的子代,則傳回無效的樹狀結構項目。
請參閱:getFirstChild/2
-spec getNextSibling(This, Item) -> integer() when This :: wxTreeCtrl(), Item :: integer().
傳回指定項目的下一個同層級項目;呼叫 getPrevSibling/2
以取得上一個同層級項目。
如果沒有進一步的兄弟姊妹,則傳回無效的樹狀結構項目。
請參閱:getPrevSibling/2
-spec getNextVisible(This, Item) -> integer() when This :: wxTreeCtrl(), Item :: integer().
傳回下一個可見項目,如果此項目是最後一個可見項目,則傳回無效的項目。
注意:item
本身必須是可見的。
-spec getPrevSibling(This, Item) -> integer() when This :: wxTreeCtrl(), Item :: integer().
傳回指定項目的上一個同層級項目;呼叫 getNextSibling/2
以取得下一個同層級項目。
如果沒有進一步的子代,則傳回無效的樹狀結構項目。
請參閱:getNextSibling/2
-spec getPrevVisible(This, Item) -> integer() when This :: wxTreeCtrl(), Item :: integer().
傳回上一個可見項目,如果此項目是第一個可見項目,則傳回無效的項目。
注意:item
本身必須是可見的。
-spec getRootItem(This) -> integer() when This :: wxTreeCtrl().
傳回樹狀控制項的根項目。
-spec getSelection(This) -> integer() when This :: wxTreeCtrl().
傳回選取項目,如果沒有選取項目,則傳回無效的項目。
此函式僅適用於沒有 wxTR_MULTIPLE
樣式的控制項,對於具有此樣式的控制項,請使用 getSelections/1
,如果需要單個項目,則使用 GetFocusedItem()
(未在 wx 中實作)。
-spec getSelections(This) -> Result when Result :: {Res :: integer(), Selection :: [integer()]}, This :: wxTreeCtrl().
將目前選取的項目填入傳入的樹狀項目陣列中。
僅當控制項具有 wxTR_MULTIPLE
樣式時,才能呼叫此函式。
傳回選取項目的數量。
-spec getStateImageList(This) -> wxImageList:wxImageList() when This :: wxTreeCtrl().
傳回狀態影像清單(從中取得應用程式定義的狀態影像)。
-spec hitTest(This, Point) -> Result when Result :: {Res :: integer(), Flags :: integer()}, This :: wxTreeCtrl(), Point :: {X :: integer(), Y :: integer()}.
計算給定 point
下的項目(如果有的話),傳回此點的樹狀項目 ID 以及額外的資訊 flags
。
flags
是下列各項的位元清單
wxTREE_HITTEST_ABOVE:
在用戶端區域上方。wxTREE_HITTEST_BELOW:
在用戶端區域下方。wxTREE_HITTEST_NOWHERE:
在用戶端區域中,但在最後一個項目下方。wxTREE_HITTEST_ONITEMBUTTON:
在與項目相關聯的按鈕上。wxTREE_HITTEST_ONITEMICON:
在與項目相關聯的點陣圖上。wxTREE_HITTEST_ONITEMINDENT:
在與項目相關聯的縮排中。wxTREE_HITTEST_ONITEMLABEL:
在與項目相關聯的標籤(字串)上。wxTREE_HITTEST_ONITEMRIGHT:
在項目右側的區域中。wxTREE_HITTEST_ONITEMSTATEICON:
在處於使用者定義狀態的樹狀檢視項目的狀態圖示上。wxTREE_HITTEST_TOLEFT:
在用戶端區域的右側。wxTREE_HITTEST_TORIGHT:
在用戶端區域的左側。
-spec insertItem(This, Parent, Previous, Text) -> integer() when This :: wxTreeCtrl(), Parent :: integer(), Previous :: integer(), Text :: unicode:chardata().
-spec insertItem(This, Parent, Previous, Text, [Option]) -> integer() when This :: wxTreeCtrl(), Parent :: integer(), Previous :: integer(), Text :: unicode:chardata(), Option :: {image, integer()} | {selImage, integer()} | {data, term()}.
在給定項目 (previous
) 之後插入項目。
image
和 selImage
參數是在正常影像清單中的索引,分別指定要用於未選取和選取項目的影像。如果 image
> -1 且 selImage
為 -1,則選取和未選取項目都使用相同的影像。
-spec isBold(This, Item) -> boolean() when This :: wxTreeCtrl(), Item :: integer().
如果給定項目處於粗體狀態,則傳回 true。
請參閱:setItemBold/3
-spec isExpanded(This, Item) -> boolean() when This :: wxTreeCtrl(), Item :: integer().
如果項目已展開(僅在它有子項目時才有意義),則傳回 true。
-spec isSelected(This, Item) -> boolean() when This :: wxTreeCtrl(), Item :: integer().
如果選取了該項目,則傳回 true。
如果項目有效,則傳回 true。
-spec isVisible(This, Item) -> boolean() when This :: wxTreeCtrl(), Item :: integer().
如果項目在螢幕上可見,則傳回 true。
-spec itemHasChildren(This, Item) -> boolean() when This :: wxTreeCtrl(), Item :: integer().
如果項目有子項目,則傳回 true。
-spec new() -> wxTreeCtrl().
預設建構函式。
-spec new(Parent) -> wxTreeCtrl() when Parent :: wxWindow:wxWindow().
等同於 new(Parent, [])
。
-spec new(Parent, [Option]) -> wxTreeCtrl() when Parent :: wxWindow:wxWindow(), Option :: {id, integer()} | {pos, {X :: integer(), Y :: integer()}} | {size, {W :: integer(), H :: integer()}} | {style, integer()} | {validator, wx:wx_object()}.
建構函式,建立並顯示樹狀控制項。
請參閱:create/3
-spec prependItem(This, Parent, Text) -> integer() when This :: wxTreeCtrl(), Parent :: integer(), Text :: unicode:chardata().
-spec prependItem(This, Parent, Text, [Option]) -> integer() when This :: wxTreeCtrl(), Parent :: integer(), Text :: unicode:chardata(), Option :: {image, integer()} | {selectedImage, integer()} | {data, term()}.
將項目附加為 parent
的第一個子項目,並傳回新的項目 ID。
image
和 selImage
參數是在正常影像清單中的索引,分別指定要用於未選取和選取項目的影像。如果 image
> -1 且 selImage
為 -1,則選取和未選取項目都使用相同的影像。
-spec scrollTo(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
將指定的項目捲動到檢視中。
請注意,此方法在視窗凍結時不起作用(請參閱 wxWindow:freeze/1
),至少在 MSW 下是這樣。
請參閱:ensureVisible/2
-spec selectItem(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
-spec selectItem(This, Item, [Option]) -> ok when This :: wxTreeCtrl(), Item :: integer(), Option :: {select, boolean()}.
選取指定的項目。
在多選控制項中,如果 select
的值為 false,則也可以用於取消選取目前選取的項目。
請注意,呼叫此方法會產生 wxEVT_TREE_SEL_CHANGING
和 wxEVT_TREE_SEL_CHANGED
事件,並且可以由前者事件處理常式否決變更。
-spec setImageList(This, ImageList) -> ok when This :: wxTreeCtrl(), ImageList :: wxImageList:wxImageList().
設定一般影像清單。
使用此方法指派的影像清單將 不會
由 wxTreeCtrl
的解構函式刪除,您必須自行刪除它。
-spec setIndent(This, Indent) -> ok when This :: wxTreeCtrl(), Indent :: integer().
設定樹狀控制項的縮排。
-spec setItemBackgroundColour(This, Item, Col) -> ok when This :: wxTreeCtrl(), Item :: integer(), Col :: wx:wx_colour().
設定項目背景的顏色。
-spec setItemBold(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
-spec setItemBold(This, Item, [Option]) -> ok when This :: wxTreeCtrl(), Item :: integer(), Option :: {bold, boolean()}.
如果 bold
參數為 true,則使項目以粗體字型顯示,否則重設為正常狀態。
請參閱:isBold/2
-spec setItemData(This, Item, Data) -> ok when This :: wxTreeCtrl(), Item :: integer(), Data :: term().
設定項目的客戶端資料。
請注意,先前與 item
相關聯的客戶端資料(如果有)不會
由此函式釋放,因此,除非您自行刪除舊的項目資料指標,否則多次針對同一個項目呼叫此函式將導致記憶體洩漏。
-spec setItemDropHighlight(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
-spec setItemDropHighlight(This, Item, [Option]) -> ok when This :: wxTreeCtrl(), Item :: integer(), Option :: {highlight, boolean()}.
為拖放動作提供項目的視覺回饋,這在將某些內容從外部拖曳到樹狀控制項上時很有用(與樹狀控制項內部的拖放操作相反,後者已在內部實作)。
-spec setItemFont(This, Item, Font) -> ok when This :: wxTreeCtrl(), Item :: integer(), Font :: wxFont:wxFont().
設定項目的字型。
樹狀結構中的所有項目都應具有相同的高度,以避免文字裁剪,因此,所有項目的字型高度應相同,儘管字型屬性可能會有所不同。
請參閱:setItemBold/3
-spec setItemHasChildren(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
-spec setItemHasChildren(This, Item, [Option]) -> ok when This :: wxTreeCtrl(), Item :: integer(), Option :: {has, boolean()}.
強制顯示項目旁邊的按鈕。
這對於允許使用者展開目前沒有任何子代的項目很有用,而是僅在需要時才新增它們,從而最大程度地減少記憶體使用量和載入時間。
-spec setItemImage(This, Item, Image) -> ok when This :: wxTreeCtrl(), Item :: integer(), Image :: integer().
-spec setItemImage(This, Item, Image, [Option]) -> ok when This :: wxTreeCtrl(), Item :: integer(), Image :: integer(), Option :: {which, wx:wx_enum()}.
設定指定項目的影像。
如需 which
參數的說明,請參閱 getItemImage/3
。
-spec setItemText(This, Item, Text) -> ok when This :: wxTreeCtrl(), Item :: integer(), Text :: unicode:chardata().
設定項目標籤。
-spec setItemTextColour(This, Item, Col) -> ok when This :: wxTreeCtrl(), Item :: integer(), Col :: wx:wx_colour().
設定項目文字的顏色。
-spec setStateImageList(This, ImageList) -> ok when This :: wxTreeCtrl(), ImageList :: wxImageList:wxImageList().
設定狀態影像清單(從中取得應用程式定義的狀態影像)。
使用此方法指派的影像清單將 不會
由 wxTreeCtrl
的解構函式刪除,您必須自行刪除它。
-spec setWindowStyle(This, Styles) -> ok when This :: wxTreeCtrl(), Styles :: integer().
設定與樹狀控制項顯示相關的模式旗標。
新的模式會立即生效。
注意:僅適用於泛型;MSW 會忽略變更。
-spec sortChildren(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
使用 OnCompareItems()
對指定項目的子項目進行排序(未在 wx 中實作)。
您應該覆寫該方法以變更排序順序(預設為遞增區分大小寫的字母順序)。
-spec toggle(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
在折疊和展開狀態之間切換指定的項目。
-spec toggleItemSelection(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
在選取和未選取狀態之間切換指定的項目。
僅適用於多選控制項。
-spec unselect(This) -> ok when This :: wxTreeCtrl().
移除目前選取項目的選取狀態(如果有)。
-spec unselectAll(This) -> ok when This :: wxTreeCtrl().
如果控制項沒有 wxTR_MULTIPLE
樣式,此函式行為與 unselect/1
相同,如果它具有此樣式,則移除所有項目的選取狀態。
-spec unselectItem(This, Item) -> ok when This :: wxTreeCtrl(), Item :: integer().
取消選取指定的項目。
此功能僅適用於多選控制項。