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…

集成显卡与独立显卡的区别

集成的显卡不带有显存,使用系统的一部分主内存作为显存,显卡的数量一般是根据需要自然动态调整。显然,使用集成显卡运行需要大量占用显存的程序,对整个系统的影响比较明显,此外系统内存的频率通常比独立的显存度低很多…

[ CodeVS冲杯之路 ] P3116

不充钱&#xff0c;你怎么AC&#xff1f; 题目&#xff1a;http://codevs.cn/problem/3116/ 基础的高精度加法&#xff0c;注意一下两个数长短不一和答案第一位的处理即可&#xff0c;当然也可以用压位的方法做 1 #include<cstdio>2 #include<cstdlib>3 #include&l…

邮槽

邮槽是基于广播通信体系设计出来的&#xff0c;采用无连接的不可靠的数据传输&#xff1b;邮槽是一种一对一或一对多的单向通信机制&#xff0c;创建邮槽的服务器进程读取数据&#xff0c;打开邮槽的客户机进程写入数据&#xff1b;为保证邮槽在各种Windows平台下都能正常工作&…

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

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

h.264 SODB RBSP EBSP的区别

SODB 数据比特串&#xff0d;&#xff0d;&#xff1e;最原始的编码数据 RBSP 原始字节序列载荷&#xff0d;&#xff0d;&#xff1e;在SODB的后面填加了结尾比特&#xff08;RBSP trailing bits 一个bit“1”&#xff09;若干比特“0”,以便字节对齐。 EBSP 扩展字节序…

C# 控件置于最顶层、最底层、隐藏、显示

控件置于最顶层、最底层 pictureBox1.BringToFront();//将控件放置所有控件最前端 pictureBox1.SendToBack();//将控件放置所有控件最底端 控件隐藏、显示 pictureBox1.Visible true;//显示 pictureBox1.Visible false;//隐藏

习题8.3.(1)

1 #include <iostream>2 #include <iomanip>3 #include <cstdlib>4 using namespace std;5 6 #define OK 17 #define ERROR 08 #define OVERFLOW -29 typedef int Status; //Status 是函数返回值类型&#xff0c;其值是函数结果状态代码。 10 11 typedef in…

python:实例化configparser模块读写配置文件

之前的博客介绍过利用python的configparser模块读写配置文件的基础用法&#xff0c;这篇博客&#xff0c;介绍下如何实例化&#xff0c;方便作为公共类调用。 实例化的好处有很多&#xff0c;既方便调用&#xff0c;又降低了脚本的维护成本&#xff0c;而且提高了代码的可读性。…

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

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

linux的mount命令详解

linux下挂载&#xff08;mount&#xff09;光盘镜像文件、移动硬盘、U盘、Windows和NFS网络共享 linux是一个优秀的开放源码的操作系统&#xff0c;可以运行在大到巨型小到掌上型各类计算机系统上&#xff0c;随着 linux系统的日渐成熟和稳定以及它开放源代码特有的优越性&…

cat命令

$ cat file 显示文件中的内容$ cat -n file 可以显示文件的内容和行号$ cat -b file -b与-n类似&#xff0c;但只标识非空白行的行号$ cat -e file 在每一行的末尾显示“$”字符&#xff0c;在需要将多行内容转换成一行时非常有用。$ cat 只是接收标准输入的内容并显示&#xf…

生成验证码的流程分析.

浏览器解析页面, 携带uuid向服务器发送请求获取图片, 服务器生成图片验证码, 返回图片本身给浏览器, 客户端根据图片输入验证码内容, 把输入的内容发送给服务器, 服务器对比输入的验证码是否正确.根据前端传入的uuid从redis中获取唯一图片验证码名称. 服务器: 图片, 图片内容…

Halcon图像增强方法与原理概述

目录简介Halcon算子与算法原理1.灰度线性变换a、scale_imageb、scale_image_maxc、invert_image2.灰度非线性变换a、log_imageb、exp_image3.图像增强对比度与照明度a、emphasizeb、illuminate4.直方图均衡化a、equ_histo_image5.灰度图像形态学a、 gray_openingb、gray_closin…

指针类型转换(转)

当我们初始化一个指针或给一个指针赋值时&#xff0c;赋值号的左边是一个指针&#xff0c;赋值号的右边是一个指针表达式。在我们前面所举的例子中&#xff0c;绝大多数情况下&#xff0c;指针的类型和指针表达式的类型是一样的&#xff0c;指针所指向的类型和指针表达式所指向…

143. Reorder List

Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do this in-place without altering the nodes values. For example,Given {1,2,3,4}, reorder it to {1,4,2,3}. public void ReorderList(ListNode head) {if(h…

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

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

碎片化学习不是学习碎片,看这篇了解碎片化学习的真相

高效学习的定义&#xff1a;找到最适合自己的学习手法&#xff0c;在相对短的时间内集中注意力&#xff0c;以解决一个工作生活当中的难题为目的着手学习&#xff0c;你需要勤加练习&#xff0c;有时候还需要向名师求助。——许岑为什么会出现碎片化学习&#xff1f; 随着科技的…

一篇能加深理解linux 虚拟文件系统的博文

URL: http://asionius.com/article/9 https://www.ibm.com/developerworks/cn/linux/l-vfs/转载于:https://www.cnblogs.com/rocklee25/p/6926267.html

如何强制ffmpeg编码时输出一个关键帧

原文地址&#xff1a;http://www.ffmpeg.com.cn/index.php/%E5%A6%82%E4%BD%95%E5%BC%BA%E5%88%B6ffmpeg%E7%BC%96%E7%A0%81%E6%97%B6%E8%BE%93%E5%87%BA%E4%B8%80%E4%B8%AA%E5%85%B3%E9%94%AE%E5%B8%A7 如何强制ffmpeg编码时输出一个关键帧 AVCodecContext *c //编码器环境句…