前言
二维表格即对行、列的操作。分为三步走:一是初始行、列;二是创建单元格;三是更新表格的定义
一、Table组件
初始化Table组件
//创建一个空的Table组件
t := widget.NewTable(nil, nil, nil)
//上面的nil就是起初提到的表格操作的三个必选操作,可以先为空,后面再定义
// 表格的初始化行、列
t.Length = func() (int, int) {
return len(data), len(data[0])
}
// 创建单元,使用label填充
t.CreateCell = func() fyne.CanvasObject {
//注意这里初始不能为空串,否则单个元不会被充开
return widget.NewLabel("table")
}
// 更新单元格数据
t.UpdateCell = func(id widget.TableCellID, template fyne.CanvasObject) {
if lb, ok := template.(*widget.Label); ok {
lb.SetText(data[id.Row][id.Col])
}
}
二、事件
1.选择
代码如下(示例):
// 选择单元格
t.OnSelected = func(id widget.TableCellID) {
lb.SetText(fmt.Sprintf("[%d,%d]", id.Row, id.Col))
}
总结
介绍了表格组件的创建过程,列头的设置、表格的格式化等后面会更新,敬请关注
附录
源代码:
https://gitee.com/gene-zhao/fyne-demo.git
更多高级用法,持续更新...