文本控件

用于在串口屏上显示文本信息,包括数字,字母,符号,汉字和其他各国语言,使用前需要提前导入字库,制作字库请参考 创建字库和导入字库

如何修改显示的字体大小:需要提前导入不同大小的字库,需要修改控件显示的字体大小时,通过上位机编辑或者通过指令修改控件的font属性即可,请参考 如何修改控件显示的字体

提示

导入字库请参考: 如何导入字库

导入图片请参考: 如何导入图片

导入动画请参考: 如何导入动画

导入视频请参考: 如何导入视频

导入音频请参考: 如何导入音频

文本控件-使用详解

给文本控件配置键盘

../_images/text_0.jpg

参考: 系统键盘的调用方式

文本控件如何跨页面使用

假设page0页面的t0文本控件,如果需要跨页面使用,需要将该控件的vscope设置为全局

在其他页面跨页面调用page0页面的t0文本控件

1 //将当前页面的t0.txt赋值为page0页面的t0.txt
2 t0.txt=page0.t0.txt
3
4 //将page0页面的t0.txt赋值为main页面的t0.txt
5 page0.t0.txt=main.t0.txt
6
7 //将page0页面的t0.txt发送出去
8 prints page0.t0.txt,0

文本和数字之间相互转换

covx-变量类型转换

1 //文本控件赋值给数字控件
2 covx t0.txt,n0.val,0,0
3
4 //数字控件赋值给文本控件
5 covx n0.val,t0.txt,0,0
6
7 //可以跨页面转换,前提是对应控件设置为全局
8 covx main.n0.val,page0.t0.txt,0,0

在文本控件后面追加文本

1 t0.txt+="哈哈哈"
2
3 //将t1.txt追加在t0.txt后面
4 t0.txt+=t1.txt
5
6 //可以跨页面追加文本,前提是对应控件设置为全局
7 main.t0.txt+=page0.t1.txt

删除文本控件后面的几个字符

1 //删除1个字符
2 t0.txt-=1
3
4 //删除n0.val个字符
5 t0.txt-=n0.val
6
7 //可以跨页面删除,前提是对应控件设置为全局
8 main.t0.txt-=main.n0.val

注意

只能从后面开始删除

删除文本控件前面几个字符

1 //删除前3个字符
2 substr t0.txt,t0.txt,3,sys0-3
3
4 //删除前n0.val个字符
5 substr t0.txt,t0.txt,n0.val,sys0-n0.val

注意

只能从后面开始删除

清空文本控件

1 //将文本赋值为空
2 t0.txt=""

修改文本控件显示文字的大小和样式

../_images/text_2.png

我们需要提前导入不同大小的字库,需要修改文本控件显示大小时,通过上位机进行编辑或者通过指令进行修改即可,请参考 如何修改控件显示的字体

1 //将t0控件的字体设置为1号字体
2 t0.font=1
3
4
5 //将main页面的t0控件的字体设置为1号字体(跨页面使用控件需要将该控件设置为全局)
6 main.t0.font=1

通过名称组的方式来设置t0控件的属性

1 sys0=t0.id
2 b[sys0].txt="abc"
3 b[sys0].font=1

批量通过名称组的方式读取掉电存储区的数据来设置文本控件的属性

假设t0存储的起始位置为100,t1存储位置120,t3存储位置140,以此类推,t9存储位置280

1 sys1=100
2 for(sys0=t0.id;sys0<=t9.id;sys0++)
3 {
4     repo b[sys0].txt,sys1
5     sys1+=20
6 }

如何实现文本输入和密码显示星号

1、新建一个文本控件。

2、将文本控件的vscope属性设置为全局。

3、设置文本控件的key属性,选择你需要的键盘。

4、设置文本控件的pw属性为是。

单片机如何对文本控件赋值

1、在上位机工程新建一个文本控件,假设为t0,将程序下载到串口屏上,

2、串口屏串口与单片机串口连接,两者波特率应一致,单片机RX接串口屏TX,单片机TX接串口屏RX。

3、发送指令:单片机串口通过字符串模式发送t0.txt=”六六六”

//注意arduino需要注意编码,因为arduino的默认编码是utf-8,串口屏默认编码是gb2312,请保证单片机与串口屏的编码相同,否则串口屏会显示乱码,或者不显示

4、发送结束符:单片机通过HEX模式发送0xff 0xff 0xff

5、此时屏幕上的t0控件内的文字变为“六六六”

文本控件-如何换行

如果是上位机软件中直接使用多行编辑,直接按回车可以换行.

在控件的事件中给文本赋值时用\r,例如t0.txt=”123\r456”

单片机通过串口发送给屏幕时用\r\n,例如printf(t0.txt=”123\r\n456”)

文本数据-显示不完全

1.文本数据长度不够(检查txt_maxl属性,即划给文本控件的字节长度)

GB2312编码下,一个英文或者数字占1个字节,一个中文占2个字节

utf-8编码下,一个英文或者数字占1个字节,一个中文占3个字节

解决方法:将控件txt_maxl改大。

2.字库中没有某些字,双击相应的字库可以预览字库,显示字库中有哪些字

3.控件属性w,h设置过小导致没办法显示全。

解决方法:将控件属性w,h改大。

4.控件调用字库字符编码和工程设备字符编码不一致。

解决方法:将工程设备字符编码设置和控件调用的字库字符编码一致。

5.字符编码不支持这个字。

解决方法:p图片来显示这个字。

单片机赋值文本控件,屏幕返回1C FF FF FF。

可能原因:单片机赋值语句例:(1). printf(“t0.txt=666\xff\xff\xff”) (2) printf(“t0.txt=”666”\xff\xff\xff”)。以上赋值语句都是不正确的。正常情况下屏幕要收到t0.txt=”666” + 结束符(16进制3个ff) 才能正常赋值。单片机使用上述例句,屏幕获取到但不是正确格式,就会串口返回数据1C FF FF FF。

解决办法:正确格式是 printf(“t0.txt=\”666\”\xff\xff\xff”) txt赋值内容需要加双引号(””)双引号发送出去需要加转义字符否则没法正确赋值。

文本控件-c语言示例

单片机通过串口给文本控件赋值

如果显示的文本不全,请检查控件的txt_maxl属性

 1 printf("t0.txt=\"abc\"\xff\xff\xff");
 2
 3 printf("t0.txt=\"%d\"\xff\xff\xff",a);
 4
 5 //实现跨页面赋值,需要将main页面的t0控件的vscope属性设置为全局
 6 printf("main.t0.txt=\"%d\"\xff\xff\xff",a);
 7
 8 //文本控件换行
 9 printf("t0.txt=\"abc\r\n123\"\xff\xff\xff");
10
11 //这样换行也是可以的
12 printf("t0.txt=\"abc\\r123\"\xff\xff\xff");

文本控件-样例工程下载

演示工程下载链接:

《跨页面赋值(全局控件)》演示工程下载

《数码管字体等宽显示》演示工程下载

《通过名称组的方式来设置文本控件的属性》演示工程下载

《文本控件赋值》演示工程下载

《文本控件和数字控件相互转换》演示工程下载

《文本控件换行》演示工程下载

《文本控件配置键盘》演示工程下载

《文本控件写入和读取eeprom》演示工程下载

《修改字体大小》演示工程下载

《用户名和密码登录》演示工程下载

《追加,删除,清空文本》演示工程下载

文本控件-相关链接

哪些控件属性可以运行中修改,哪些不能运行中修改

txt属性和val属性有什么区别,为什么有些属性赋值要加双引号,有些不用加双引号

跨页面赋值,全局变量操作

虚拟浮点数与文本控件互相转换样例工程

文本控件-属性详解

控件属性解析

提示

绿色属性可以通过上位机或者串口屏指令进行修改,黑色属性只能在上位机中修改或者不可修改,可通过上位机进行修改指“选中控件后通过属性栏修改控件的属性”

type属性 -控件类型,固定值,不同类型的控件type值不同,相同类型的控件type值相同,可读,不可通过上位机修改,不可通过指令修改。参考: 控件属性-控件id对照表

id属性 -控件ID,可通过上位机左上角的上下箭头置顶或置底,可读,可通过上位机修改左上角的箭头置顶或置地间接修改,不可通过指令修改。参考: 如何更改控件的前后图层关系

objname属性 -控件名称。不可读,可通过上位机进行修改,不可通过指令更改。

vscope属性 -内存占用(私有占用只能在当前页面被访问,全局占用可以在所有页面被访问),当设置为私有时,跳转页面后,该控件占用的内存会被释放,重新返回该页面后该控件会恢复到最初的设置。可读,可通过上位机进行修改,不可通过指令更改。参考:跨页面赋值,全局变量操作

drag属性 -是否支持拖动:0-否;1-是。仅x系列支持。可读,可通过上位机修改,可通过指令修改。

aph属性 -不透明度(0-127),0为完全透明,127为完全不透明。仅x系列支持。可读,可通过上位机修改,可通过指令修改。

effect属性 -加载特效:0-立即加载;1-上边飞入;2-下边飞入;3-左边飞入;4-右边飞入;5-左上角飞入;6-右上角飞入;7-左下角飞入;8-右下角飞入。仅x系列支持,在上位机中设置为立即加载时,无法通过指令变为其他特效,当在上位机中设置为非立即加载的特效时,可以变为立即加载,也可以再改为其他特效

sta属性 -背景填充方式:0-切图;1-单色;2-图片;3-透明(仅x系列支持透明)。可读,可通过上位机修改,不可通过指令修改。

picc属性 -切图背景(必须是全屏图片),sta为切图时才有这个属性。可读,可通过上位机修改,可通过指令修改。

bco属性 -背景色,sta为单色时才有这个属性。可读,可通过上位机修改,可通过指令修改。

style属性 -显示风格:0-平面;1-边框;2-3D_Down;3-3D_Up;4-3D_Auto,sta为单色时才有这个属性。可读,可通过上位机修改,不可通过指令修改。

borderc属性 -边框颜色。当style设置为边框时可用。可读,可通过上位机修改,x系列可通过指令修改,其他系列不可通过指令修改。

borderw属性 边框粗细。当style设置为边框时可用。最大值:255。可读,可通过上位机修改,x系列可通过指令修改,其他系列不可通过指令修改。

pic属性 -背景图片,sta为图片时才有这个属性。可读,可通过上位机修改,可通过指令修改。

pco属性 -字体色。可读,可通过上位机修改,可通过指令修改。

key属性 -绑定键盘。可读,可通过上位机修改,不可通过指令修改。

font属性 -控件调用的字库id,调用不同的字库会显示不同的字体或字号。可读,可通过上位机修改,可通过指令修改。参考:1、 创建字库和导入字库 2、 指定字库

xcen属性 -水平对齐:0-靠左;1-居中;2-靠右。可读,可通过上位机修改,可通过指令修改。

ycen属性 -垂直对齐:0-靠上;1-居中;2-靠下。可读,可通过上位机修改,可通过指令修改。

pw属性 -是否显示为密码(内容仍为实际内容,仅仅显示出来为*):0-否;1-是。可读,可通过上位机修改,可通过指令修改。

txt属性 -字符内容。可读,可通过上位机修改,可通过指令修改。

txt_maxl属性 -字符最大长度(即分配内存空间)。可读,可通过上位机修改,不可通过指令修改。

isbr属性 -是否自动换行:0-否;1-是。可读,可通过上位机修改,可通过指令修改。

spax属性 -字符横向间距(最小0,最大255)。可读,可通过上位机修改,x系列可通过指令修改,其他系列不可通过指令修改。

spay属性 -字符纵向间距(最小0,最大255)。可读,可通过上位机修改,x系列可通过指令修改,其他系列不可通过指令修改。

x属性 -控件的X坐标。可读,可通过上位机修改,x系列可通过指令修改,其他系列不可通过指令修改。

y属性 -控件的Y坐标。可读,可通过上位机修改,x系列可通过指令修改,其他系列不可通过指令修改。

w属性 -控件的宽度。可读,可通过上位机修改,不可通过指令修改。

h属性 -控件的高度。可读,可通过上位机修改,不可通过指令修改。