选择器:
tablewidget· 设计器组件: 表格 · 按名称:tablewidget#名称或#名称
通用报表表格:自定义表头、单元格、勾选、排序、键盘导航;支持稀疏 @TABLE 虚拟行;单元格可嵌入子控件。
需要列字母/行号、工作表编辑体验时,请用 数据表格(
datagrid)的「工作表模式」。表格组件不再提供 Excel/工作表模式。
常用方法
| 方法 | 说明 |
|---|---|
置行数(行数) / 取行数() |
逻辑行数(未写入数据的行视为空行) |
置列数(列数) / 取列数() |
列数 |
置单元格(行, 列, 文本) / 取单元格(行, 列) |
读写单元格(0 起) |
取标题(行, 列) / 置标题(行, 列, [文本], [图片字节集]) |
单元格文本与图片;可只设文字、只设图片或两者同时 |
添加列(名称, [列宽=80], [图标], [对齐方式=1]) |
末尾追加列并设表头;对齐 1左/2中/3右 |
添加行(名称, [行高=28], [图标], [对齐方式=1]) |
末尾追加行;名称/图标写入首列(无独立行头) |
置表头(列, 文本) / 取表头(列) |
改已有列头标题 |
加入控件(行, 列, 组件名, [宽度=0], [高度=0]) |
在单元格嵌入子控件;可与左侧文字并存 |
置勾选(行, 勾选) / 取勾选(行) |
行勾选(读写首列;需「显示勾选」) |
置单元格勾选(行, 列, 勾选) / 取单元格勾选(行, 列) |
任意单元格勾选 |
取当前行() / 取当前列() |
当前单元格行列 |
取行数据(行, [类型=1]) |
指定行各列文本;1=文本数组,2=JSON |
取当前行数据([返回值类型=1]) |
当前行;同 取行数据 的类型含义 |
置当前单元格(行, 列) |
设置当前格 |
清空() |
清空单元格,保留行列与表头 |
属性
| 属性 | 说明 |
|---|---|
选中项 |
当前选中行索引(0 起);读写 |
事件与 置事件
设计器写法:
函数 表格1.单元格被单击(整数 行, 整数 列, 文本 区域) {
输出(行, 列, 区域)
}
运行时动态绑定(等同设计器事件名):
表格1.置事件("单元格被单击", &表格单元格单击)
函数 表格单元格单击(整数 行, 整数 列, 文本 区域) {
文本 行数据[] = 表格1.取当前行数据()
输出(行数据)
}
嵌入控件须先 加入控件 得到名称,再对返回名 置事件:
文本 按钮 = 表格1.加入控件(0, 2, "按钮", 64, 24)
表格1.置标题(0, 2, "操作")
按钮.置事件("单击", &单元格按钮单击)
常用事件:当前单元格改变、单元格被单击、单元格被双击、单元格改变、单元格被右键单击。
示例
// 推荐:添加列 / 添加行
表格1.置列数(1)
表格1.置行数(0)
表格1.置表头(0, "姓名") // 首列标题
表格1.添加列("年龄", 80, , 2) // 追加列;对齐 2=居中
表格1.添加行("张三")
表格1.置单元格(0, 1, "25")
表格1.添加行("李四")
文本 行[] = 表格1.取行数据(0) // 文本数组
文本 json = 表格1.取行数据(0, 2) // JSON:["张三","25"]
文本 当前[] = 表格1.取当前行数据()
兼容旧写法(先定列再改表头):
表格1.置行数(10)
表格1.置列数(3)
表格1.置表头(0, "姓名")
表格1.置表头(1, "年龄")
表格1.置标题(0, 0, "张三")
表格1.置标题(0, 1, "25")
表格1.置勾选(0, 真)
整数 行 = 表格1.选中项
表格1.选中项 = 2
文本 行[] = 表格1.取当前行数据()
文本 json = 表格1.取当前行数据(2)
逻辑 已选 = 表格1.取勾选(0)