ftk学习记(label篇)

【 声明:版权全部,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】


    还是接着上面的一篇博文。

之前以前答应过大家,让大家看一下最简单的ftk程序是怎么执行的。所以,这里我们上传一下图片。



    由于还是编辑模式。所以临时还不能看到图片在网页中是怎么显示的。

只是没有关系,这次仅仅是做一个最初的尝试。假设大家有更好的意见,最好还是用微信扫一下头像或者私信给我,就能够了。


    前面的代码还是比較简单的。今天,我们来学习一下label的显示方法。当然,无论大家是做windows phone、android app、ios,怎样编写gui都是一个基本功课。这些gui显示的方法大同小异。假设有心学习一下ftk。其它的移动app相信也不在话下。只是,由于移动应用开发的语言不太一样,有c sharp。 有java,有object c。所以差异性多少还是有点的。


    label,顾名思义,就是一个标签。更直白一点,就是在窗体上某个地点显示一串文字。当然。你能够依据自己的须要灵活改动文字的类型、大小、颜色、背景等信息。总之就是这么个意思。闲话少说,我们能够看看demo下label代码是怎么编写的。相同,今天仅仅会展示代码的内容,详细显示的效果还要等待以下一篇文章。

#include "ftk.h"typedef struct _TimerInfo
{int times;FtkWidget* label;
}TimerInfo;static Ret timeout(void* ctx)
{TimerInfo* info = ctx;char buffer[32] = {0};if(info->times > 0){snprintf(buffer, sizeof(buffer), "Quit after %d seconds", info->times);ftk_widget_set_text(info->label, buffer);info->times--;return RET_OK;}else{ftk_quit();ftk_logd("%s: timeout and quit.\n", __func__);return RET_REMOVE;}
}int main(int argc, char* argv[])
{int width = 0;int height = 0;FtkGc gc = {.mask = FTK_GC_BG};TimerInfo info = {.times=5, };ftk_init(argc, argv);FtkSource* timer = ftk_source_timer_create(1000, timeout, &info);FtkWidget* win = ftk_app_window_create();width = ftk_widget_width(win);height = ftk_widget_height(win);FtkWidget* label = ftk_label_create(win, 10, 10, width - 20, 20);ftk_widget_set_text(label, "中文文本");label = ftk_label_create(win, 10, 40, width - 20, 20);ftk_widget_set_text(label, "English Text");assert(strcmp(ftk_widget_get_text(label), "English Text") == 0);gc.bg.a = 0xff;gc.bg.r = 0xF0;gc.bg.g = 0xF0;gc.bg.b = 0x80;label = ftk_label_create(win, 10, height/2, width - 20, 120);ftk_widget_set_gc(label, FTK_WIDGET_INSENSITIVE, &gc);ftk_widget_unset_attr(label, FTK_ATTR_TRANSPARENT);ftk_widget_set_text(label, "中英文混合多行文本显示:the linux mobile development.带有背景颜色。");label = ftk_label_create(win, 50, height/2-30, width, 20);info.label = label;ftk_widget_set_text(win, "label demo");ftk_widget_show_all(win, 1);ftk_widget_set_attr(win, FTK_ATTR_IGNORE_CLOSE);ftk_main_loop_add_source(ftk_default_main_loop(), timer);ftk_run();return 0;
}

  代码的内容,不是非常多,大约有个70行左右。

開始,相同首先初始化ftk,调用了ftk_init函数。在函数结尾的地方,代码也调用了ftk_run函数。

这些都是代码的基本流程。仅仅要你是用的是ftk。都须要遵守这个流程。中间的内容都是自己加入的。

 

    继续分析,我们观察一下,代码都做了些什么。细细想来,事实上逻辑都差点儿相同。依次往下看,代码创建了一个win控件,进而在win上插入了4个label控件。它们各自是中文文本、English Text、中英文混合多行文本显示、暂时label。

除此之外,代码中还出现了一个timer,每隔一段时间,它都会调用timeout这个函数。这个函数做了什么啊,从10行開始往下看。事实上就是定时显示一段文字。告诉我们窗体离quit还有几秒。假设超时了呢,当然就会调用ftk_quit这个函数,ftk在释放完一些资源后就结束了。


    这个流程不复杂。还没有搞清楚的朋友能够继续看一下代码。下次,再发布代码的执行效果。




转载于:https://www.cnblogs.com/yfceshi/p/6917753.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254456.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

扇形特征点提取

处理要求 分别找出扇形左上角,左下角,右上角,右下角,最高点,下面弓形最高点 原图 halcon 处理程序 read_image (Image14208259e49d7b1cf7c544, 544.bmp) rgb1_to_gray (Image14208259e49d7b1cf7c544, GrayImage) t…

Android Studio maven-metadata.xml 卡着不动原因和解决方法

头一天好好的,第二天就卡着了。 一直在这个地方不动,如果停止就会报 Error:Could not run build action using Gradle distribution ‘https://services.gradle.org/distributions/gradle-4.1-all.zip‘. 所以直接就去看了下链接:https://dl.…

halcon 圆环类缺陷检测的一种方法(极坐标变换法)

目录简介极坐标变换定义原理Halcon中的极坐标变换1、polar_trans_image_ext算子用法与参数剖析2、polar_trans_region_inv算子用法与参数剖析圆环类缺陷检测思路与步骤Halcon实例实例简介程序解读思路剖析应用实例1项目介绍处理程序处理效果应用实例2项目介绍处理程序处理效果简…

Halcon图像滤波方法与原理概述

目录简介Halcon算子与算法原理基础滤波a、均值滤波b、中值滤波c、高斯滤波d、导向滤波简介 图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和…

Halcon深度学习环境搭建(win下)全网最全教程

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/cashmood/article/details/105042928 文章目录halcon深度学习介绍系统与环境搭建1、对电脑系统与硬件…

第二周进度及工作量统计

项目:词频统计修改 项目类型:个人项目 项目完成情况:已完成 项目改进:第二次改进 项目日期:2016.9.14----2.16.9.14 CCSEIT分析需求,设计15:2015:30010编码实现15:3016:20050文档程序说明,随笔2…

Dalsa线扫相机SDK开发-小试牛刀(1)

拿到了dalsa相机,可以用Sapera软件配置相机,进行图像采集。但是自己开发的话就得撸起袖子写代码了,查了两篇不错的博文,作为指导。 Sapera帮助文档 - 《好好先生》专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/liubing8609/a…

深度学习环境搭建(GPU)CUDA安装(完全版)

文章目录1、查询电脑硬件2、环境搭建与软件安装1、安装CUDA运算平台软件2、安装cuDNN支持包3、配置环境变量3、验证CUDA与cuDNN安装前几天在看深度学习。因为对深度学习不是很了解,在配置环境时走了许多弯路,也总是战战兢兢的。现在对深度学习的环境搭建…

Pycharm用鼠标滚轮控制字体大小

一、pycharm字体放大的设置 File —> setting —> Keymap —>在搜寻框中输入:increase —> Increase Font Size(双击) —> 在弹出的对话框中选择Add Mouse Shortcut 在弹出的对话框中同时按住ctrl键和鼠标滚轮向上滑。 二、…

Halcon自定义函数封装方法(全网最详细)

文章目录1、名词解释2、例子介绍1、处理原图与任务:2、代码与解析:3、Halcon函数封装方式①明确需求②选取函数部分进行函数创建,更改函数接口③运行验证与函数更改操作有网友说不太清楚这个halcon函数的封装方法。今天写个教程帖子&#xff…

傅里叶变换进行缺陷检测detect_indent_fft.hdev(源代码与详细解析)

文章目录简介程序解析处理结果预览算法讲解简介 detect_indent_fft.hdev是halcon的示例程序,是傅里叶变换进行缺陷检测的一个例子,主要是傅里叶变换在复杂背景下的缺陷检测。 这个程序展示了如何利用快速傅里叶变换(FFT)对塑料制…

thinkphp5 内置接口开发与使用

最近的一个项目在用tp5,对于tp3都几乎没用过的我来说~~~ tp5最好的一点就是对接口的单独封装,只要严格按照要求一步一步来就可以成功了 开启命令行:配置环境变量安装tp5项目cmd进入项目目录,运行php think,出现如下内容…

Halcon2019软件安装教程

文章目录1、halcon介绍2、安装halcon-19.11.0.0-windows.exe1、下载halcon-19.11.0.0-windows.exe安装包2、halcon-19.11.0.0-windows.exe软件安装3、验证Halcon安装1、halcon介绍 HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视…

Python: 编程遇到的一些问题以及网上解决办法?

0.Python: TypeError: str does not support the buffer interface,(点我) fp.write(url.encode("utf-8")) 1.Python:object of type Response has no len(),如何解决?(点我) Traceback (most recent call last):File "F:/Python/TD.py&q…

一文学会,胶位偏移、缺胶、断胶、溢胶检测

文章目录检测任务检测思路点胶质量检测代码及解析图示处理思路博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 检测任务 点胶检查检测以下缺陷: 1.缺少粘合胶的部分(断胶) 2.粘合剂过多或过少的部分&#x…

深入理解halcon相机标定

目录相机标定简介深度说明1、相机标定参数介绍2、标定板详细介绍问题1:halcon是否只能使用halcon专用的标定板?问题2:halcon标定板如何生成?问题3:halcon标定板如何摆放,拍照数量有无限制?标定步…

halcon模板匹配干扰边缘消除办法(最硬核方式)

目录halcon手绘形状匹配模板手绘形状匹配模板主要算子解析draw_nurbs 绘制平滑曲线参数解释create_shape_model_xld 使用XLD轮廓创建模板参数解释实例演示与解析实例代码展示与解析运行过程与处理展示读入图像绘制模板使用绘制的XLD创建模板查找模板博主写作不容易,…

第一个PowerShell脚本——PowerShell三分钟(九)

前面把基础知识讲了一遍,现在我们开始写一个最初级的脚本写脚本的工具有很多,有文本文档,有PowerShell ISE,PowerShell Studio等,这里选用系统自带的PowerShell ISE这里大家依然要记得以管理员身份运行,否则…

MVC架构简介及其测试策略

最近在WEB端测试工作中陷入了瓶颈,单纯的手动功能测试在没有成熟的代码规范之前还是很容易坑的,WEB自动化测试一时半会还没有什么进展,所以决定先学习一下网站用的MVC架构,跟着教程写了一个小网站,大概也找到了WEB测试…

C++多线程实例(_beginThreadex创建多线程)

C多线程(二)(_beginThreadex创建多线程) C/C Runtime 多线程函数一 简单实例(来自codeprojct:http://www.codeproject.com/useritems/MultithreadingTutorial.asp) 主线程创建2个线程t1和t2,创建时2个线程…