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

非常早之前就知道ftk了,当时主要是由于买了李先静的书,所以知道了这么一个项目。由于对这样的gui的代码非常感兴趣。所以在我闲暇的时候也会拿来看一看。从整个project来看,代码非常工整。平台移植也方便。所以有兴趣的同学能够看一看。

一般对于一个开源项目。要深入地參与当中都要经历几个过程,这各自是使用、阅读、改动、重构。

大多数公司里面也会使用到开源项目,可是往往停留在使用的阶段。

所以。假设希望有深入了解的朋友还是须要自己腾出时间来好好研究一番才行。

网上下载ftk的地方非常多,大家能够从code.google.com上面查找下载就可以。对于ftk。大家能够理解成一个lib程序库,假设要想非常好地使用它,那么一方面须要对底层的驱动进行移植。还有一方面须要适配到各个os平台、compiler工具等等。没有关系,作者已经帮我们弄好了,我们能够建立一个仿真平台就能够了。

今天,我们不打算从编译、调试的角度来看ftk,而是从一个最简单的使用者来看怎么调用ftk。恰巧。作者也给我们提供了很多的demo代码。我们的学习最好还是就从这些demo代码開始。学习新的编程语言。大家都是从hello world開始。我们最好还是也从hello world開始ftk的学习。

由于ftk的版本号非常多,所以本章以及后面全部的文章都是依照ftk 0.4版本号作为參考使用的。

首先。须要编译ftk,

./autogen.sh
./configure --with-backend=linux-x11:320*480 --with-fontengine=freetype
make clean
make

再编写自己的代码,

#include "ftk.h"

int main(int argc, char* argv[])
{
FtkWidget* win = NULL; ftk_init(argc, argv);
win = ftk_app_window_create();
ftk_widget_set_text(win, "Hello FTK!");
ftk_widget_show(win, 1);
ftk_widget_set_attr(win, FTK_ATTR_QUIT_WHEN_CLOSE); ftk_run(); return 0;
}

这恐怕是demo中最简单的代码了。整个文件也不足20行。

关于系统的代码。事实上就两行。一行是ftk_init。另外一行是ftk_run。其它的内容都是自己编写的。整个流程非常easy。创建一个win,设置win的属性,開始while(1)执行ftk。

是不是非常easy?

假设大家有兴趣,能够好好理解一下这段代码。想看一下代码执行效果的同学,敬请期待下一篇文章。

ftk学习记(首篇)的更多相关文章

  1. ftk学习记(消息框篇)

    [ 声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 上一篇说到了输入框.闲话不多说,首先看结果显示, 大家看看效果是不是和我们之前说的一样.今天, ...

  2. ftk学习记(label篇)【转】

    转自:http://blog.csdn.net/feixiaoxing/article/details/25000093 版权声明:本文为博主原创文章,未经博主允许不得转载. [ 声明:版权所有,欢迎 ...

  3. ftk学习记(label篇)

    [ 声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 还是接着上面的一篇博文. 之前以前答应过大家,让大家看一下最简单的ftk程序是怎么执行的.所以 ...

  4. ftk学习记(icon篇)

    [声明:版权全部,欢迎转载.请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在開始今天的文章之前.我们还是先看一下上一节的效果图. 大家能够參照上一节的解说,是不是存在这种 ...

  5. ftk学习记(滑动条篇)

    [声明:版权全部,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 前一篇说到了combox.就先看一下效果吧. 说完了combox,就谈谈今天的滑动条.滑动条,当然 ...

  6. ftk学习记(输入框篇)

    [ 声明:版权全部.欢迎转载.请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 昨天讲了进度条,我们还是看看它的运行效果是怎么样的.截图例如以下, 进度条使用的情况还是比較多的 ...

  7. ftk学习记(对话框篇)

    [声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 前面谈到了输入法,首先看一看效果. 上面有4个输入框,大家能够分别试试,看看效果怎样. 今天,我 ...

  8. ftk学习记(waitbox篇)

    [声明:版权全部.欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 前面说到了脚本.那么就看看ftk中demo与script搭配的效果是什么样的? 上面的效果图就相 ...

  9. ftk学习记(list篇)

    [声明:版权全部,欢迎转载.请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在開始今天的list主题之前,先看一下icon的执行效果. 今天说的list事实上和这个icon几 ...

随机推荐

  1. python 编码问题解决方案

    1.UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128) ...

  2. Django rest_framework API 随笔

    分页 需要对数量进行限制 ./settings.py REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination ...

  3. gulp打包压缩代码以及图片

    1.首先全局安装gulp 全局安装就不做介绍了 初学gulp,终于把常用的配置,api,语法弄明白了! gulp插件地址:http://gulpjs.com/plugins gulp官方网址:http ...

  4. javaScript 计算两个日期的天数相差

    一:计算两个日期相差的天数 1 <html> <head> <meta http-equiv="Content-Type" content=" ...

  5. node——模块化

    之前写的新闻部分几乎所有操作都写在了一起,这次开始进行模块化. 为什么要模块化: 1.提高开发效率,所有操作在一个文件内,不方便团队操作,模块化可多人同时操作 2.当程序出错,可以分模块寻找错误 3. ...

  6. C++基础 (4) 第四天 this指针 全局函数和成员函数 友元 操作符重载

    1static强化练习-仓库进货和出货 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; c ...

  7. javascript 富文本 注意事项

    富文本编辑器 div内嵌iframe iframe body contenteditable属性 true 整个iframe 即为可编辑框,创建时注意事项: 1.编辑 焦点问题 弹出新控件时为控件设置 ...

  8. [USACO4.2] 草地排水 Drainage Ditches (最大流)

    题目背景 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没 ...

  9. 实现路由器自动登录校园网(edu)

    准备工作: (1)一个可以刷openwrt固件的路由器,如大多人使用的crazybox版本的路由. (2)一个可用的edu账号. (3)一个浏览器(firfox,chrome) 下面开始: 一:刷op ...

  10. C#常用 API函数大全

    常用Windows API1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConne ...