 
       wx.lib.agw.ultimatelistctrl¶
  wx.lib.agw.ultimatelistctrl¶UltimateListCtrl is a class that mimics the behaviour of ListCtrl, with almost
the same base functionalities plus some more enhancements. This class does
not rely on the native control, as it is a full owner-drawn list control.
In addition to the standard ListCtrl behaviour this class supports:
wx.ImageList. Simply use PyImageList instead of wx.ImageList
to add your images.SetItemPyData and GetItemPyData:
the data can be any Python object and not necessarily an integer as in ListCtrl;grid.Grid, i.e. an item/subitem may overwrite neighboring
items/subitems if its text would not normally fit in the space allotted to it;And a lot more. Check the demo for an almost complete review of the functionalities.
Usage example:
import sys
import wx
import wx.lib.agw.ultimatelistctrl as ULC
class MyFrame(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, -1, "UltimateListCtrl Demo")
        list = ULC.UltimateListCtrl(self, wx.ID_ANY, agwStyle=ULC.ULC_REPORT | ULC.ULC_VRULES | ULC.ULC_HRULES | ULC.ULC_SINGLE_SEL | ULC.ULC_HAS_VARIABLE_ROW_HEIGHT)
        list.InsertColumn(0, "Column 1")
        list.InsertColumn(1, "Column 2")
        index = list.InsertStringItem(sys.maxsize, "Item 1")
        list.SetStringItem(index, 1, "Sub-item 1")
        index = list.InsertStringItem(sys.maxsize, "Item 2")
        list.SetStringItem(index, 1, "Sub-item 2")
        choice = wx.Choice(list, -1, choices=["one", "two"])
        index = list.InsertStringItem(sys.maxsize, "A widget")
        list.SetItemWindow(index, 1, choice, expand=True)
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(list, 1, wx.EXPAND)
        self.SetSizer(sizer)
# our normal wxApp-derived class, as usual
- if __name__ == “__main__”:
app = wx.App(0)
frame = MyFrame(None) app.SetTopWindow(frame) frame.Show()
app.MainLoop()
This class supports the following window styles:
| Window Styles | Hex Value | Description | 
|---|---|---|
| ULC_VRULES | 0x1 | Draws light vertical rules between rows in report mode. | 
| ULC_HRULES | 0x2 | Draws light horizontal rules between rows in report mode. | 
| ULC_ICON | 0x4 | Large icon view, with optional labels. | 
| ULC_SMALL_ICON | 0x8 | Small icon view, with optional labels. | 
| ULC_LIST | 0x10 | Multicolumn list view, with optional small icons. Columns are computed automatically, i.e. you don’t set columns as in ULC_REPORT. In other words, the list wraps, unlike aListBox. | 
| ULC_REPORT | 0x20 | Single or multicolumn report view, with optional header. | 
| ULC_ALIGN_TOP | 0x40 | Icons align to the top. Win32 default, Win32 only. | 
| ULC_ALIGN_LEFT | 0x80 | Icons align to the left. | 
| ULC_AUTOARRANGE | 0x100 | Icons arrange themselves. Win32 only. | 
| ULC_VIRTUAL | 0x200 | The application provides items text on demand. May only be used with ULC_REPORT. | 
| ULC_EDIT_LABELS | 0x400 | Labels are editable: the application will be notified when editing starts. | 
| ULC_NO_HEADER | 0x800 | No header in report mode. | 
| ULC_NO_SORT_HEADER | 0x1000 | No Docs. | 
| ULC_SINGLE_SEL | 0x2000 | Single selection (default is multiple). | 
| ULC_SORT_ASCENDING | 0x4000 | Sort in ascending order. (You must still supply a comparison callback in ListCtrl.SortItems.) | 
| ULC_SORT_DESCENDING | 0x8000 | Sort in descending order. (You must still supply a comparison callback in ListCtrl.SortItems.) | 
| ULC_TILE | 0x10000 | Each item appears as a full-sized icon with a label of one or more lines beside it (partially implemented). | 
| ULC_NO_HIGHLIGHT | 0x20000 | No highlight when an item is selected. | 
| ULC_STICKY_HIGHLIGHT | 0x40000 | Items are selected by simply hovering on them, with no need to click on them. | 
| ULC_STICKY_NOSELEVENT | 0x80000 | Don’t send a selection event when using ULC_STICKY_HIGHLIGHTstyle. | 
| ULC_SEND_LEFTCLICK | 0x100000 | Send a left click event when an item is selected. | 
| ULC_HAS_VARIABLE_ROW_HEIGHT | 0x200000 | The list has variable row heights. | 
| ULC_AUTO_CHECK_CHILD | 0x400000 | When a column header has a checkbox associated, auto-check all the subitems in that column. | 
| ULC_AUTO_TOGGLE_CHILD | 0x800000 | When a column header has a checkbox associated, toggle all the subitems in that column. | 
| ULC_AUTO_CHECK_PARENT | 0x1000000 | Only meaningful foe checkbox-type items: when an item is checked/unchecked its column header item is checked/unchecked as well. | 
| ULC_SHOW_TOOLTIPS | 0x2000000 | Show tooltips for ellipsized items/subitems (text too long to be shown in the available space) containing the full item/subitem text. | 
| ULC_HOT_TRACKING | 0x4000000 | Enable hot tracking of items on mouse motion. | 
| ULC_BORDER_SELECT | 0x8000000 | Changes border colour whan an item is selected, instead of highlighting the item. | 
| ULC_TRACK_SELECT | 0x10000000 | Enables hot-track selection in a list control. Hot track selection means that an item is automatically selected when the cursor remains over the item for a certain period of time. The delay is retrieved on Windows using the win32apicall win32gui.SystemParametersInfo(win32con.SPI_GETMOUSEHOVERTIME), and is defaulted to 400ms on other platforms. This style applies to all views ofUltimateListCtrl. | 
| ULC_HEADER_IN_ALL_VIEWS | 0x20000000 | Show column headers in all view modes. | 
| ULC_NO_FULL_ROW_SELECT | 0x40000000 | When an item is selected, the only the item in the first column is highlighted. | 
| ULC_FOOTER | 0x80000000 | Show a footer too (only when header is present). | 
| ULC_USER_ROW_HEIGHT | 0x100000000 | Allows to set a custom row height (one value for all the items, only in report mode). | 
This class processes the following events:
| Event Name | Description | 
|---|---|
| EVT_LIST_BEGIN_DRAG | Begin dragging with the left mouse button. | 
| EVT_LIST_BEGIN_RDRAG | Begin dragging with the right mouse button. | 
| EVT_LIST_BEGIN_LABEL_EDIT | Begin editing a label. This can be prevented by calling Veto(). | 
| EVT_LIST_END_LABEL_EDIT | Finish editing a label. This can be prevented by calling Veto(). | 
| EVT_LIST_DELETE_ITEM | An item was deleted. | 
| EVT_LIST_DELETE_ALL_ITEMS | All items were deleted. | 
| EVT_LIST_KEY_DOWN | A key has been pressed. | 
| EVT_LIST_INSERT_ITEM | An item has been inserted. | 
| EVT_LIST_COL_CLICK | A column (m_col) has been left-clicked. | 
| EVT_LIST_COL_RIGHT_CLICK | A column (m_col) has been right-clicked. | 
| EVT_LIST_COL_BEGIN_DRAG | The user started resizing a column - can be vetoed. | 
| EVT_LIST_COL_END_DRAG | The user finished resizing a column. | 
| EVT_LIST_COL_DRAGGING | The divider between columns is being dragged. | 
| EVT_LIST_ITEM_SELECTED | The item has been selected. | 
| EVT_LIST_ITEM_DESELECTED | The item has been deselected. | 
| EVT_LIST_ITEM_RIGHT_CLICK | The right mouse button has been clicked on an item. | 
| EVT_LIST_ITEM_MIDDLE_CLICK | The middle mouse button has been clicked on an item. | 
| EVT_LIST_ITEM_ACTIVATED | The item has been activated ( ENTERor double click). | 
| EVT_LIST_ITEM_FOCUSED | The currently focused item has changed. | 
| EVT_LIST_CACHE_HINT | Prepare cache for a virtual list control. | 
| EVT_LIST_ITEM_CHECKING | An item/subitem is being checked. | 
| EVT_LIST_ITEM_CHECKED | An item/subitem has been checked. | 
| EVT_LIST_COL_CHECKING | A column header is being checked. | 
| EVT_LIST_COL_CHECKED | A column header has being checked. | 
| EVT_LIST_FOOTER_CHECKING | A column footer is being checked. | 
| EVT_LIST_FOOTER_CHECKED | A column footer has being checked. | 
| EVT_LIST_ITEM_HYPERLINK | An hyperlink item has been clicked. | 
| EVT_LIST_FOOTER_CLICK | The user left-clicked on a column footer. | 
| EVT_LIST_FOOTER_RIGHT_CLICK | The user right-clicked on a column footer. | 
| EVT_LIST_ITEM_LEFT_CLICK | Send a left-click event after an item is selected. | 
| EVT_LIST_END_DRAG | Notify an end-drag operation. | 
UltimateListCtrl is distributed under the wxPython license.
Latest Revision: Andrea Gavana @ 27 Dec 2012, 21.00 GMT
Version 0.8
 Functions Summary¶
 Functions Summary¶| CheckVariableRowHeight | Checks whether a text contains multiline strings and if the listCtrl window | 
| CreateListItem | Creates a new instance of UltimateListItem. | 
| GetdragcursorBitmap | Returns the drag and drop cursor image as a wx.Bitmap. | 
| GetdragcursorData | Returns the drag and drop cursor image as a decompressed stream of characters. | 
| GetdragcursorImage | Returns the drag and drop cursor image as a wx.Image. | 
| MakeDisabledBitmap | Creates a disabled-looking bitmap starting from the input one. | 
| to_list | Converts the input data into a Python list. | 
 Classes Summary¶
 Classes Summary¶| ColWidthInfo | A simple class which holds information about UltimateListCtrlcolumns. | 
| CommandListEvent | A list event holds information about events associated with UltimateListCtrl | 
| GeometryInfo | A simple class which holds items geometries for UltimateListCtrlnot in | 
| PyImageList | A PyImageListcontains a list of images. Images can have masks for | 
| SelectionStore | SelectionStore is used to store the selected items in the virtual | 
| UltimateListCtrl | UltimateListCtrl is a class that mimics the behaviour of ListCtrl, with almost | 
| UltimateListEvent | A list event holds information about events associated with UltimateListCtrl | 
| UltimateListHeaderData | A simple class which holds information about UltimateListItemvisual | 
| UltimateListHeaderWindow | This class holds the header window for UltimateListCtrl. | 
| UltimateListItem | This class stores information about a UltimateListCtrlitem or column. | 
| UltimateListItemAttr | Represents the attributes (colour, font, ...) of a UltimateListCtrl | 
| UltimateListItemData | A simple class which holds information about UltimateListItemvisual | 
| UltimateListLineData | A simple class which holds line geometries for UltimateListCtrl. | 
| UltimateListMainWindow | This is the main widget implementation of UltimateListCtrl. | 
| UltimateListRenameTimer | Timer used for enabling in-place edit. | 
| UltimateListTextCtrl | Control used for in-place edit. | 
CheckVariableRowHeight(listCtrl, text)¶Checks whether a text contains multiline strings and if the listCtrl window style is compatible with multiline strings.
| Parameters: | 
 | 
|---|
CreateListItem(itemOrId, col)¶Creates a new instance of UltimateListItem.
| Parameters: | 
 | 
|---|
GetdragcursorData()¶Returns the drag and drop cursor image as a decompressed stream of characters.
MakeDisabledBitmap(original)¶Creates a disabled-looking bitmap starting from the input one.
| Parameters: | original – an instance of wx.Bitmapto be greyed-out. | 
|---|
to_list(input)¶Converts the input data into a Python list.
| Parameters: | input – can be an integer or a Python list (in which case nothing will be done to input. | 
|---|