高通字库
版本 V2.0 · 更新于 2026-05-25

4.1 条形码控件

在创建的屏幕控件中添加一个条形码控件并设置控件属性。

API 参考:

函数说明默认值
gt_barcode_create(parent)创建条形码控件
gt_barcode_set_type(barcode, family)设置条码类型(由 Designer 导出,见 barcode_type_te
gt_barcode_set_code_text(barcode, "code")设置条码编码内容
gt_barcode_set_mode_w(barcode, value)设置条码模块宽度(像素)
gt_barcode_set_mode_h(barcode, value)设置条码模块高度(像素)
gt_barcode_set_hri_type(barcode, family)设置条码底部 HRI 字幕类型
gt_barcode_set_upc_e_sys_code(barcode, value)设置 UPC-E 系统码位
/** barcode1 */
// 在 screen_home 屏幕控件中创建一个条形码控件
barcode1 = gt_barcode_create(screen_home);
// 设置控件坐标
gt_obj_set_pos(barcode1, 300, 100);
// 设置控件尺寸
gt_obj_set_size(barcode1, 138, 80);
// 设置条形码类型为 EAN-13
gt_barcode_set_type(barcode1, GT_FAMILY_BARCODE_TYPE_EAN_13);
// 设置条形码模块宽度为 2 个像素
gt_barcode_set_mode_w(barcode1, 2);
// 设置条形码模块高度为 64 个像素
gt_barcode_set_mode_h(barcode1, 64);
// 设置条形码内容
gt_barcode_set_code_text(barcode1, "1234567890128");

运行后的条形码控件效果如下图所示:

图2-12 条形码控件效果

图2-12 条形码控件效果

4.2 二维码控件

在创建的屏幕控件中添加一个二维码控件并设置控件属性。

API 参考:

函数说明默认值
gt_qrcode_create(parent)创建二维码控件
gt_qrcode_set_version(qr_code, version)设置二维码版本:GT_FAMILY_QRCODE_VERSION_3 ~ 17
gt_qrcode_set_str(qr_code, "str")设置二维码内容
gt_qrcode_set_background(qr_code, color)设置背景颜色
gt_qrcode_set_forecolor(qr_code, color)设置前景颜色
/** qrcode1 */
// 在 screen_home 屏幕控件中创建一个二维码控件
qrcode1 = gt_qrcode_create(screen_home);
// 设置控件坐标
gt_obj_set_pos(qrcode1, 468, 356);
// 设置控件尺寸
gt_obj_set_size(qrcode1, 37, 37);
// 设置二维码版本
gt_qrcode_set_version(qrcode1, GT_FAMILY_QRCODE_VERSION_8);
// 设置二维码背景色
gt_qrcode_set_background(qrcode1, gt_color_hex(0xFFFFFF));
// 设置二维码前景色
gt_qrcode_set_forecolor(qrcode1, gt_color_hex(0x000000));
// 设置二维码内容
gt_qrcode_set_str(qrcode1, "https://www.hmi.gaotongfont.cn/");

运行后的二维码控件效果如下图所示:

图2-13 二维码控件效果

图2-13 二维码控件效果

4.3 滑窗控件

在创建的屏幕控件中添加一个滑窗控件并设置控件属性。

API 参考:

函数说明默认值
gt_view_pager_create(parent)创建滑窗控件
gt_view_pager_set_fragment_count(obj, count)设置总页数
gt_view_pager_add_fragment(obj)添加一个空白页,返回页索引
gt_view_pager_fragment_add_widget(vp, idx, child)将子控件添加到指定页(idx 从 0 开始)
gt_view_pager_scroll_to_fragment(obj, index)滚动到指定页
gt_view_pager_set_scroll_effect(obj, effect)滚动效果:DEFAULT(默认)/ STATIC / NO_FINGER_FOLLOWDEFAULT
gt_view_pager_get_cur_page(obj)获取当前页索引
gt_view_pager_get_widget_belong_fragment(vp, child)获取子控件所属页索引,-1=未找到
gt_view_pager_set_glass(obj, enabled)背景玻璃效果false
gt_view_pager_set_glass_color(obj, color)玻璃效果颜色
gt_view_pager_set_window_size(obj, w, h)设置可视窗口尺寸(创建后、添加页之前调用)与父容器一致
gt_view_pager_set_direction(obj, dir)滚动方向:GT_VIEW_PAGER_DIR_HORIZONTAL(默认) / VERTICALHORIZONTAL
gt_view_pager_set_tip_bar_pos(obj, pos)指示条位置:DEFAULT / OPPOSITEDEFAULT
// 在 screen_home 屏幕控件中创建一个滑窗控件
viewPager1 = gt_view_pager_create(screen_home);
// 设置滑窗控件的位置 (0, 0)
gt_obj_set_pos(viewPager1, 0, 0);
// 设置滑窗控件的尺寸(宽度 480,高度 320 默认为屏幕尺寸)
gt_obj_set_size(viewPager1, 480, 320);
// 设置滑窗控件的透明度
gt_obj_set_opa(viewPager1, GT_OPA_0);
// 设置滑窗控件的页数
gt_view_pager_set_fragment_count(viewPager1, 2);
// 设置滑窗控件背景的玻璃效果
gt_view_pager_set_glass(viewPager1, 0);

与之对应的在其他控件设置所属的滑窗,以添加控件到滑窗内部。

// 为滑窗控件的第一页(从 0 开始)添加图片控件 1
gt_view_pager_fragment_add_widget(viewPager1, 0, img1);
// 为滑窗控件的第二页添加图片控件 4
gt_view_pager_fragment_add_widget(viewPager1, 1, img4);

运行后的滑窗结果如下图所示:

图2-14 滑窗控件效果

图2-14 滑窗控件效果

4.4 直线控件

在创建的屏幕控件中添加一个直线控件并设置控件属性。

API 参考:

函数说明默认值
gt_line_create(parent)创建直线控件
gt_line_set_color(line, color)设置线条颜色
gt_line_set_start_point(line, xs, ys)设置起点坐标(相对控件坐标)
gt_line_set_end_point(line, xe, ye)设置终点坐标(相对控件坐标)
gt_line_set_hor_line(line, length)设为水平线(长度=length),位置由 gt_obj_set_pos() 设定
gt_line_set_ver_line(line, length)设为垂直线(长度=length),位置由 gt_obj_set_pos() 设定
gt_line_set_line_width(line, line_width)设置线宽(像素)
gt_line_set_brush_type(line, type)端点样式:GT_BRUSH_TYPE_ROUND(圆形)或 GT_BRUSH_TYPE_RECT(方形)ROUND
gt_line_get_start_point(line, ret_p)获取起点坐标
gt_line_get_end_point(line, ret_p)获取终点坐标
/** line1 */
// 在 screen_home 屏幕控件中创建一个直线控件
line1 = gt_line_create(screen_home);
// 设置控件坐标
gt_obj_set_pos(line1, 50, 50);
// 设置水平线长度为 200 像素
gt_line_set_hor_line(line1, 200);
// 设置线宽为 3 像素
gt_line_set_line_width(line1, 3);
// 设置线条颜色为红色
gt_line_set_color(line1, gt_color_hex(0xFF0000));
// 设置端点样式为圆形
gt_line_set_brush_type(line1, GT_BRUSH_TYPE_ROUND);

4.5 表格控件

表格控件支持多行多列表格显示。需先添加表头(确定列数),再添加内容,最后调用 gt_table_refresh()

API 参考:

函数说明默认值
gt_table_create(parent)创建表格控件
gt_table_add_header_text_by_len(table, "text", len, align)添加表头单元格(确定列数)。align 推荐 GT_ALIGN_LEFT_MID / CENTER_MID / RIGHT_MID
gt_table_add_content_text_by_len(table, "text", len)添加内容单元格(自动换行填充,逐列添加)
gt_table_refresh(table)必须调用。添加完表头和内容后计算每列的最大宽高
gt_table_set_font_color(table, color)设置字体颜色
gt_table_set_font_size(table, size)设置字体大小(pt)
gt_table_set_font_gray(table, gray)设置字体灰度:1 / 2 / 4
gt_table_set_font_scale_size(table, scale_size)软件缩放目标尺寸(0=不缩放)0
gt_table_set_font_family(table, family)设置字体系列
gt_table_set_font_cjk(table, cjk)设置 CJK 字体变体
gt_table_set_font_thick_en(table, thick)设置英文字体粗细
gt_table_set_font_thick_cn(table, thick)设置中文字体粗细
gt_table_set_font_encoding(table, encoding)设置文本编码:见 枚举速查表 gt_encoding_et
gt_table_set_font_style(table, font_style)设置字体风格:见 枚举速查表 gt_font_style_etNORMAL
gt_table_set_header_bold(table, is_bold)表头加粗false
gt_table_set_font_info(table, font_info)批量设置字体信息(gt_font_info_st 结构体)
/** table1 */
// 在 screen_home 屏幕控件中创建一个表格控件
table1 = gt_table_create(screen_home);
// 设置控件坐标和尺寸
gt_obj_set_pos(table1, 10, 10);
gt_obj_set_size(table1, 460, 300);
// 设置字体大小
gt_table_set_font_size(table1, 16);
// 表头加粗
gt_table_set_header_bold(table1, true);
// 添加表头(3 列)
gt_table_add_header_text_by_len(table1, "序号", strlen("序号"), GT_ALIGN_CENTER_MID);
gt_table_add_header_text_by_len(table1, "名称", strlen("名称"), GT_ALIGN_LEFT_MID);
gt_table_add_header_text_by_len(table1, "数值", strlen("数值"), GT_ALIGN_RIGHT_MID);
// 添加内容
gt_table_add_content_text_by_len(table1, "1", strlen("1"));
gt_table_add_content_text_by_len(table1, "温度", strlen("温度"));
gt_table_add_content_text_by_len(table1, "25.6°C", strlen("25.6°C"));
gt_table_add_content_text_by_len(table1, "2", strlen("2"));
gt_table_add_content_text_by_len(table1, "湿度", strlen("湿度"));
gt_table_add_content_text_by_len(table1, "68%", strlen("68%"));
// 必须调用 refresh 使表格生效
gt_table_refresh(table1);