def _set_data_view_with_df(grid: wx.ListCtrl, df: Optional[pd.DataFrame]): """Set data view with data frame.""" grid.ClearAll() if df is None: return cols = df.columns.tolist() n_col = len(cols) for i, col in enumerate(cols): grid.InsertColumn(i, col) for i, row in df.iterrows(): grid.InsertItem(i, row[cols[0]]) for n in range(1, n_col): grid.SetItem(i, n, row[cols[n]])
def listctrl(element, instance: wx.ListCtrl): props = {**element['props']} if 'style' in props: del props['style'] set_basic_props(instance, props) # TODO: what events...? instance.DeleteAllColumns() instance.DeleteAllItems() for e, col in enumerate(props.get('column_defs', [])): instance.InsertColumn(e, col['title']) for row_idx, item in enumerate(props.get('data', [])): instance.InsertItem(row_idx, '') for col_idx, coldef in enumerate(props.get('column_defs', [])): instance.SetItem(row_idx, col_idx, coldef['column'](item)) return instance
def InsertColumn(self, col, info): retval = ListCtrl.InsertColumn(self, *args, **kwargs) ColumnSorterMixin.SetColumnCount(self, self.GetColumnCount()) return retval