TradingView Pine Script表格固定像素尺寸实现求助
Pine Script 固定表格单元格宽高的解决方案
核心问题原因
Pine Script 的表格默认会自适应父容器尺寸,即使单独设置单元格宽高,容器的自适应缩放逻辑也会覆盖这些设置,导致单元格尺寸随窗口变化,小屏场景下内容被截断。
解决步骤
固定表格容器的整体像素尺寸
在table.new()中明确指定width和height的像素值,替代默认的自动适配逻辑。禁用自适应适配
调用table.set_fit_columns()和table.set_fit_rows()并传入false,关闭表格自动调整列宽、行高的功能。单独设置每个单元格的固定宽高
使用table.cell_set_width()和table.cell_set_height()为每个单元格指定具体的像素值。
完整代码示例
//@version=5 indicator("固定尺寸表格", overlay=false) // 可自定义的尺寸参数(方便适配不同屏幕) table_total_width = input.int(700, "表格总宽度(像素)", minval=400) table_total_height = input.int(200, "表格总高度(像素)", minval=120) cell_width = input.int(230, "单元格宽度(像素)", minval=80) cell_height = input.int(100, "单元格高度(像素)", minval=50) if barstate.islast // 创建固定尺寸的表格容器 fixed_table = table.new( position.top_right, columns=3, rows=2, width=table_total_width, height=table_total_height, border_width=1, border_color=color.gray ) // 关闭自适应适配 table.set_fit_columns(fixed_table, false) table.set_fit_rows(fixed_table, false) // 批量设置所有单元格的宽高 for row in 0 to 1 for col in 0 to 2 table.cell_set_width(fixed_table, row, col, cell_width) table.cell_set_height(fixed_table, row, col, cell_height) // 填充表格内容 table.cell_set_text(fixed_table, 0, 0, "指标A") table.cell_set_text(fixed_table, 0, 1, "指标B") table.cell_set_text(fixed_table, 0, 2, "指标C") table.cell_set_text(fixed_table, 1, 0, str.tostring(close, "#.##")) table.cell_set_text(fixed_table, 1, 1, str.tostring(open, "#.##")) table.cell_set_text(fixed_table, 1, 2, str.tostring(high, "#.##"))
注意事项
- 表格总尺寸需与单元格尺寸匹配:比如3列每列230像素,总宽度建议设为
3*230 + 边框宽度,避免内容溢出或多余留白。 - 若需适配小屏幕,可通过
input.int()让用户手动调整尺寸参数,匹配不同分辨率的设备。 - 固定尺寸后表格不会随窗口缩放,若窗口尺寸小于表格尺寸,表格会被截断,需确保设置的尺寸在目标屏幕的可视范围内。
内容的提问来源于stack exchange,提问作者Player01
相关产品推荐
相关产品推荐

