In this article, we are going to learn about GetBoundingRect() method in wx.TreeCtrl. GetBoundingRect() returns the rectangle bounding the item. If textOnly is True, only the rectangle around the item’s label will be returned, otherwise, the item’s image is also taken into account. The return value may be None if the rectangle was not successfully retrieved, such as if the item is currently not visible.
GetBoundingRect() takes two arguments item and textOnly.
Syntax:
wx.TreeCtrl.GetBoundingRect(self, item, textOnly)
Parameters:
Parameter | Type | Description |
item | wx.TreeItemId | item that we want to ensure to be visible. |
textOnly | boolean | If textOnly is True, only the rectangle around the item’s label will be returned, otherwise the item’s image is also taken into account. |
Python
import wx class MyTree(wx.TreeCtrl): def __init__( self , parent, id , pos, size, style): wx.TreeCtrl.__init__( self , parent, id , pos, size, style) class TreePanel(wx.Panel): def __init__( self , parent): wx.Panel.__init__( self , parent) # create tree control in window self .tree = MyTree( self , wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TR_HAS_BUTTONS) # CREATE TREE ROOT self .root = self .tree.AddRoot( 'root' ) self .tree.SetPyData( self .root, ( 'key' , 'value' )) # add item to root item = self .tree.AppendItem( self .root, "Item" ) item2 = self .tree.AppendItem( self .root, "Item" ) item3 = self .tree.AppendItem(item, "SubItem" ) item4 = self .tree.AppendItem(item, "SubItem" ) item5 = self .tree.AppendItem(item2, "SubItem" ) item6 = self .tree.AppendItem(item, "SubItem" ) # print bound rectangle pyObject print ( self .tree.GetBoundingRect(item, False )) # expand all nodes of the tree self .tree.ExpandAllChildren(item) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add( self .tree, 0 , wx.EXPAND) self .SetSizer(sizer) class MainFrame(wx.Frame): def __init__( self ): wx.Frame.__init__( self , parent = None , title = 'TreeCtrl Demo' ) panel = TreePanel( self ) self .Show() if __name__ = = '__main__' : app = wx.App(redirect = False ) frame = MainFrame() app.MainLoop() |
Output:
(0, 0 , 10, 10)