Table
A virtualized tabular collection with header, row, and cell parts.
Loading interactive demo…
func TableExample(rows []string) *ui.Element {
table := ui.NewTable(ui.TableRootProps{Columns: func() []ui.TableColumnDeclaration {
return []ui.TableColumnDeclaration{{ID: "name", Label: "Name", Track: "1fr", Sortable: true}}
}, RowCount: func() float64 {
return float64(len(rows))
}, RowHeight: 26, HeaderHeight: 28, PartProps: ui.PartProps{Style: ui.Style().Height(260).OverflowY("scroll")}})
children := []*ui.Element{
table.Header(ui.TableHeaderProps{Column: "name"}).Child("Name"),
}
for index, name := range rows {
children = append(children, table.Row(ui.TableRowProps{Index: index}).Child(
table.Cell(ui.TableCellProps{Column: "name"}).Child(name),
))
}
return table.Root().Children(children)
}#Import
Import ui from github.com/egoist/quickgui/go/ui.
import (
"github.com/egoist/quickgui/go/ui"
)#Usage
func TableExample(rows []string) *ui.Element {
table := ui.NewTable(ui.TableRootProps{Columns: func() []ui.TableColumnDeclaration {
return []ui.TableColumnDeclaration{{ID: "name", Label: "Name", Track: "1fr", Sortable: true}}
}, RowCount: func() float64 {
return float64(len(rows))
}, RowHeight: 26, HeaderHeight: 28, PartProps: ui.PartProps{Style: ui.Style().Height(260).OverflowY("scroll")}})
children := []*ui.Element{
table.Header(ui.TableHeaderProps{Column: "name"}).Child("Name"),
}
for index, name := range rows {
children = append(children, table.Row(ui.TableRowProps{Index: index}).Child(
table.Cell(ui.TableCellProps{Column: "name"}).Child(name),
))
}
return table.Root().Children(children)
}#Anatomy
table.Roottable.Headertable.Rowtable.Cell
#API reference
Expand an entry for its description and complete signature. A dash means no declaration default is documented.
NewTable
View sourceui.NewTable(props ...TableRootProps) *TableComponentNewTable declares a Table instance. Optional props provide initial settings.
Reffunc(*native.Node)—
Receives the retained native node after construction. Keep imperative work in event or lifecycle callbacks.
func(*native.Node)View sourceStyleany—
Reusable layout, typography, color, and interaction-state styles. Build with ui.Style() and compose with Merge.
anyView sourceChildrenPartChildren—
Content mounted inside the component. Compound child callbacks run after the parent context exists.
PartChildrenView sourceDisabledany—
Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.
anyView sourceRolestring—
FocusOnPointerany—
Groupany—
AriaLabelany—
Accessible name, especially for icon-only controls or controls without a visible label.
anyView sourceTabIndex*float64—
Controls sequential keyboard focus order. Omit to retain the component’s default focus behavior.
*float64View sourceOnClickfunc(*native.Event)—
Called after QuickGUI resolves an activation, including supported keyboard activation.
func(*native.Event)View sourceOnDoubleClickfunc(*native.Event)—
Callback for double click. The signature below lists the event payload.
func(*native.Event)View sourceOnContextMenufunc(*native.Event)—
Callback for context menu. The signature below lists the event payload.
func(*native.Event)View sourceOnPointerfunc(*native.Event)—
OnMouseEnterfunc(*native.Event)—
Callback for mouse enter. The signature below lists the event payload.
func(*native.Event)View sourceOnMouseLeavefunc(*native.Event)—
Callback for mouse leave. The signature below lists the event payload.
func(*native.Event)View sourceOnMouseDownfunc(*native.Event)—
OnMouseUpfunc(*native.Event)—
OnKeyDownfunc(*native.Event)—
OnKeyUpfunc(*native.Event)—
OnFocusfunc(*native.Event)—
OnBlurfunc(*native.Event)—
Columnsfunc() []TableColumnDeclaration—
RowCountfunc() float64—
RowHeightany—
HeaderHeightany—
SelectionModestring—
Selectionfunc() []TableRowRange—
Sortfunc() *TableSortState—
Editingfunc() *TableCell—
OnVisibleRangeChangefunc(VisibleRange, *native.Event)—
Callback for visible range change. The signature below lists the event payload.
func(VisibleRange, *native.Event)View sourceOnSelectionChangefunc([]TableRowRange, *native.Event)—
OnSortChangefunc(*TableSortState, *native.Event)—
Callback for sort change. The signature below lists the event payload.
func(*TableSortState, *native.Event)View sourceOnActiveCellChangefunc(*TableCell, *native.Event)—
Callback for active cell change. The signature below lists the event payload.
func(*TableCell, *native.Event)View sourceOnColumnResizefunc([]ColumnWidth, *native.Event)—
Callback for column resize. The signature below lists the event payload.
func([]ColumnWidth, *native.Event)View sourceOnColumnReorderfunc([]string, *native.Event)—
Callback for column reorder. The signature below lists the event payload.
func([]string, *native.Event)View sourceOnEditEndfunc(TableEditEndDetails, *native.Event)—
Callback for edit end. The signature below lists the event payload.
func(TableEditEndDetails, *native.Event)View sourceOnActivatefunc(TableCell, *native.Event)—
Callback for activate. The signature below lists the event payload.
func(TableCell, *native.Event)View sourceTable.Disabled
View sourcetable.Disabled(value any) *TableComponentPrevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.
Table.Columns
View sourcetable.Columns(value any) *TableComponentColumn declarations for the virtual table.
Table.RowCount
View sourcetable.RowCount(value any) *TableComponentTotal logical row count.
Table.RowHeight
View sourcetable.RowHeight(value any) *TableComponentLogical height of each virtualized row.
Table.HeaderHeight
View sourcetable.HeaderHeight(value any) *TableComponentHeight reserved for the table’s header row, in logical pixels.
Table.SelectionMode
View sourcetable.SelectionMode(value string) *TableComponentAllows single or multiple table selection.
Table.Selection
View sourcetable.Selection(value any) *TableComponentControlled selection for a table, native picker, or color control.
Table.Sort
View sourcetable.Sort(value any) *TableComponentCurrent table sort configuration.
Table.Editing
View sourcetable.Editing(value any) *TableComponentControlled editing state of the table cell.
Table.OnVisibleRangeChange
View sourcetable.OnVisibleRangeChange(value func(VisibleRange, *native.Event)) *TableComponentCallback for visible range change. The signature below lists the event payload.
Table.OnSelectionChange
View sourcetable.OnSelectionChange(value func([]TableRowRange, *native.Event)) *TableComponentReports the selected native picker option or color.
Table.OnSortChange
View sourcetable.OnSortChange(value func(*TableSortState, *native.Event)) *TableComponentCallback for sort change. The signature below lists the event payload.
Table.OnActiveCellChange
View sourcetable.OnActiveCellChange(value func(*TableCell, *native.Event)) *TableComponentCallback for active cell change. The signature below lists the event payload.
Table.OnColumnResize
View sourcetable.OnColumnResize(value func([]ColumnWidth, *native.Event)) *TableComponentCallback for column resize. The signature below lists the event payload.
Table.OnColumnReorder
View sourcetable.OnColumnReorder(value func([]string, *native.Event)) *TableComponentCallback for column reorder. The signature below lists the event payload.
Table.OnEditEnd
View sourcetable.OnEditEnd(value func(TableEditEndDetails, *native.Event)) *TableComponentCallback for edit end. The signature below lists the event payload.
Table.OnActivate
View sourcetable.OnActivate(value func(TableCell, *native.Event)) *TableComponentCallback for activate. The signature below lists the event payload.
Table.Root
View sourcetable.Root() *ElementConfigures root for this part. The declared type and source define the accepted value.
Table.Header
View sourcetable.Header(options ...TableHeaderProps) *ElementConfigures header for this part. The declared type and source define the accepted value.
Reffunc(*native.Node)—
Receives the retained native node after construction. Keep imperative work in event or lifecycle callbacks.
func(*native.Node)View sourceStyleany—
Reusable layout, typography, color, and interaction-state styles. Build with ui.Style() and compose with Merge.
anyView sourceChildrenPartChildren—
Content mounted inside the component. Compound child callbacks run after the parent context exists.
PartChildrenView sourceDisabledany—
Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.
anyView sourceRolestring—
FocusOnPointerany—
Groupany—
AriaLabelany—
Accessible name, especially for icon-only controls or controls without a visible label.
anyView sourceTabIndex*float64—
Controls sequential keyboard focus order. Omit to retain the component’s default focus behavior.
*float64View sourceOnClickfunc(*native.Event)—
Called after QuickGUI resolves an activation, including supported keyboard activation.
func(*native.Event)View sourceOnDoubleClickfunc(*native.Event)—
Callback for double click. The signature below lists the event payload.
func(*native.Event)View sourceOnContextMenufunc(*native.Event)—
Callback for context menu. The signature below lists the event payload.
func(*native.Event)View sourceOnPointerfunc(*native.Event)—
OnMouseEnterfunc(*native.Event)—
Callback for mouse enter. The signature below lists the event payload.
func(*native.Event)View sourceOnMouseLeavefunc(*native.Event)—
Callback for mouse leave. The signature below lists the event payload.
func(*native.Event)View sourceOnMouseDownfunc(*native.Event)—
OnMouseUpfunc(*native.Event)—
OnKeyDownfunc(*native.Event)—
OnKeyUpfunc(*native.Event)—
OnFocusfunc(*native.Event)—
OnBlurfunc(*native.Event)—
Columnstring—
Table.Row
View sourcetable.Row(options ...TableRowProps) *ElementConfigures row for this part. The declared type and source define the accepted value.
Reffunc(*native.Node)—
Receives the retained native node after construction. Keep imperative work in event or lifecycle callbacks.
func(*native.Node)View sourceStyleany—
Reusable layout, typography, color, and interaction-state styles. Build with ui.Style() and compose with Merge.
anyView sourceChildrenPartChildren—
Content mounted inside the component. Compound child callbacks run after the parent context exists.
PartChildrenView sourceDisabledany—
Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.
anyView sourceRolestring—
FocusOnPointerany—
Groupany—
AriaLabelany—
Accessible name, especially for icon-only controls or controls without a visible label.
anyView sourceTabIndex*float64—
Controls sequential keyboard focus order. Omit to retain the component’s default focus behavior.
*float64View sourceOnClickfunc(*native.Event)—
Called after QuickGUI resolves an activation, including supported keyboard activation.
func(*native.Event)View sourceOnDoubleClickfunc(*native.Event)—
Callback for double click. The signature below lists the event payload.
func(*native.Event)View sourceOnContextMenufunc(*native.Event)—
Callback for context menu. The signature below lists the event payload.
func(*native.Event)View sourceOnPointerfunc(*native.Event)—
OnMouseEnterfunc(*native.Event)—
Callback for mouse enter. The signature below lists the event payload.
func(*native.Event)View sourceOnMouseLeavefunc(*native.Event)—
Callback for mouse leave. The signature below lists the event payload.
func(*native.Event)View sourceOnMouseDownfunc(*native.Event)—
OnMouseUpfunc(*native.Event)—
OnKeyDownfunc(*native.Event)—
OnKeyUpfunc(*native.Event)—
OnFocusfunc(*native.Event)—
OnBlurfunc(*native.Event)—
Indexany—
Table.Cell
View sourcetable.Cell(options ...TableCellProps) *ElementConfigures cell for this part. The declared type and source define the accepted value.
Reffunc(*native.Node)—
Receives the retained native node after construction. Keep imperative work in event or lifecycle callbacks.
func(*native.Node)View sourceStyleany—
Reusable layout, typography, color, and interaction-state styles. Build with ui.Style() and compose with Merge.
anyView sourceChildrenPartChildren—
Content mounted inside the component. Compound child callbacks run after the parent context exists.
PartChildrenView sourceDisabledany—
Prevents activation and exposes the disabled state to accessibility. Compound parts inherit a disabled root.
anyView sourceRolestring—
FocusOnPointerany—
Groupany—
AriaLabelany—
Accessible name, especially for icon-only controls or controls without a visible label.
anyView sourceTabIndex*float64—
Controls sequential keyboard focus order. Omit to retain the component’s default focus behavior.
*float64View sourceOnClickfunc(*native.Event)—
Called after QuickGUI resolves an activation, including supported keyboard activation.
func(*native.Event)View sourceOnDoubleClickfunc(*native.Event)—
Callback for double click. The signature below lists the event payload.
func(*native.Event)View sourceOnContextMenufunc(*native.Event)—
Callback for context menu. The signature below lists the event payload.
func(*native.Event)View sourceOnPointerfunc(*native.Event)—
OnMouseEnterfunc(*native.Event)—
Callback for mouse enter. The signature below lists the event payload.
func(*native.Event)View sourceOnMouseLeavefunc(*native.Event)—
Callback for mouse leave. The signature below lists the event payload.
func(*native.Event)View sourceOnMouseDownfunc(*native.Event)—
OnMouseUpfunc(*native.Event)—
OnKeyDownfunc(*native.Event)—
OnKeyUpfunc(*native.Event)—
OnFocusfunc(*native.Event)—
OnBlurfunc(*native.Event)—
Columnstring—
Index*float64—
Element
View sourcepart.Child(content).Style(style)Every part returns a fluent element. Strings, numbers, elements, and deferred child factories compose directly.
ChildChild(child any) *Element—
Child appends content and returns this element. Content can be an element, native node, scalar, accessor, or node-returning construction callback.
Child(child any) *ElementView sourceChildrenChildren(children ...any) *Element—
Children appends multiple children in order without replacing existing content. It also accepts []any, []*Element, and []*native.Node slices as arguments. Read the retained child nodes through element.Node.Children.
Children(children ...any) *ElementView sourceStyleStyle(style StyleBuilder) *Element—
Style merges a reusable style. Scalar accessors retain independent native bindings.
Style(style StyleBuilder) *ElementView sourceOnClickOnClick(handler func()) *Element—
OnClick handles a click without an unused event parameter.
OnClick(handler func()) *ElementView sourceRefRef(handler func(*native.Node)) *Element—
Ref exposes the native handle once at this point in the declaration chain.
Ref(handler func(*native.Node)) *ElementView source