当前位置: 首页 > news >正文

用腾讯云做购物网站视频好消息tvapp电视版

用腾讯云做购物网站视频,好消息tvapp电视版,盘锦做网站的公司,国内可以做的国外兼职网站概述 之前介绍TextLine和TextParagraph的时候,提到了用制表符和设定列宽形式来绘制简易表格,但是很明显,单纯使用此种方式很难获得对表格的精确控制。 所以对于表格绘制问题,我决定单独开坑,单独深入研究。 目前比较…

概述

之前介绍TextLineTextParagraph的时候,提到了用制表符和设定列宽形式来绘制简易表格,但是很明显,单纯使用此种方式很难获得对表格的精确控制。

所以对于表格绘制问题,我决定单独开坑,单独深入研究。

目前比较好的方式就是:

  • 将表格数据储存为一个二维数组
  • 设定列宽
  • 然后通过遍历每个单元格数据,来构造单独的TextLineTextParagraph实例,并通过列宽设定动态计算和绘制

系列目录

  • 0.概述
  • 1.绘制简单图形
  • 2.设定绘图变换
  • 3.绘制纹理
  • 4.绘制样式盒
  • 5.绘制字符和字符串
  • 6.TextLine和TextParagraph详解
  • 7.自定义节点TextBoard
  • 8.绘制点索引
  • 9.绘制表格

初期测试代码

以下为我初步测试的代码:

# =======================================================
# 使用绘图函数绘制表格 - 测试1
# 巽星石
# 202441218:30:24   Godot 4.2.1
# =======================================================
extends Node2Dvar font = ThemeDB.fallback_fontvar col_widths := [50,60,60,200]           # 列宽
var data = [["序号","姓名","性别","年龄"],["1","张三","男","32"],["2","李四","男","33"],["3","王五","男","34"],["4","巽星石","男","34000000000000000000"],["5","翼星石","男","34000000000000000000"],["6","羿星石","男","34000000000000000000"],["7","粪星石","男","34000000000000000000"],["8","龚星石","男","34000000000000000000"],
]var line_height := 20.0                    # 行高
#var col_widths := [50,60,60,200]           # 列宽
var pos := Vector2(100,100)                # 绘制位置 - 表格左上角点
var bg_color:= Color.WHITE                 # 背景色
var th_bg_color:= Color.AQUAMARINE         # 表头背景色
var font_color:= Color.BLACK               # 字色
var border_color:= Color.DARK_GRAY         # 边框色
var padding := 5                           # 内边距# 计算前几列的累计宽度
func cols_width(col:int):var w:floatfor i in range(col):w += col_widths[i] + padding * 2return wfunc _ready() -> void:line_height += padding * 2func _draw() -> void:var width = cols_width(col_widths.size())var height = line_height * data.size()# 背景矩形var rect = Rect2(pos,Vector2(width,height))draw_rect(rect,bg_color)# 表头矩形var rect2 = Rect2(pos,Vector2(width,line_height))draw_rect(rect2,th_bg_color)draw_line(pos,pos + Vector2(width,0),border_color,1)  # 顶部线for l in  range(data.size()): # 遍历数据行for i in range(data[l].size()): # 遍历数据列# 构造TextLinevar text = TextLine.new()text.add_string(data[l][i],font,16)text.width = col_widths[i]text.alignment = HORIZONTAL_ALIGNMENT_CENTER# 绘制text.draw(get_canvas_item(),pos + Vector2(cols_width(i) + padding,(line_height) * l + padding),font_color)draw_line(pos+Vector2(0,line_height * (l+1)),pos + Vector2(cols_width(col_widths.size()),line_height * (l+1)),border_color,1)# 绘制竖线for i in range(col_widths.size()+1):var a1 = pos +Vector2(cols_width(i),0)var a2 = a1 + Vector2(0,line_height * data.size())draw_line(a1,a2,border_color,1)

绘制的效果:

image.png

可以看到已经实现了基本的内边距、单元格文本对齐设定以及整体的表格渲染功能。

后续展望

  • 后续将可能在目前工作的基础上编写表格绘制函数,并采用二维数组多行文本两种数据存储和解析形式
  • 将可能创建带有单元格合并以及斜线等特殊样式的表格
  • 可能会提供奇数、偶数行差异背景样式
  • 可能实现基于鼠标的交互,包括定位单行文本框控件LineEdit来编辑数据以及动态设定列宽
  • 在单元格中进行图文混排
http://www.wangmingla.cn/news/14006.html

相关文章:

  • wordpress ssl 插件seo优化对网店的推广的作用为
  • 做推送的网站推荐quark搜索引擎入口
  • 网站模板 黑白域名查询系统
  • 深圳在哪些网站上面做推广百度推广托管公司
  • 建网站那种服务器好qq群推广平台
  • 成都 企业 网站制作站优化
  • 怎么自己做网站优化大师官网登录入口
  • 应用软件开发需要学什么杭州seo排名优化外包
  • 网站视频封面怎么做微信推广平台
  • 在网站上有中英切换怎么做潍坊关键词优化排名
  • 广州企业网站建设方案批量关键词排名查询工具
  • 创立网站成本网站页面的优化
  • wordpress 查看访客搜索引擎优化公司排行
  • word做网站框架seo研究中心官网
  • 关系建设的网站百度云网盘免费资源
  • 江苏建设部官方网站搜索引擎seo外包
  • 微网站服务器网络营销推广平台有哪些
  • 寻求一个专业网站制作公司七台河网站seo
  • 社交网站开发平台百度怎么推广
  • 网站开发协议百度推广助手客户端
  • 网站开发涉及到哪些知识产权流程优化四个方法
  • 找大连做企业网站的公司seo是什么职位
  • 响应式mvc企业网站源码百度总部地址
  • 潍坊网络推广电话信息流优化师
  • 做宣传网站的公司自己怎么做游戏推广赚钱
  • 滨州正规网站建设哪家专业seo优化教程自学网
  • 建设银行无锡分行招聘网站百度链接提交收录入口
  • 邯郸网站开发宁波seo怎么推广
  • 大连网站建设怎么做网络销售渠道有哪些
  • 一站式做网站技术百度人气榜