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

上一篇说到了对话框。今天就看看结果。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVpeGlhb3hpbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

对话框不复杂,今天我们就来谈一谈脚本。有过android开发经验的朋友都知道,要想开发app,除了须要编写必要的代码,还须要编写一些脚本。脚本主要是用来描写叙述gui使用的。它告诉系统这些gui组件是怎么搭配在一起的。

  1. <?
  2.  
  3. xml version="1.0" encoding="utf-8"?>
  4. <window value="Entry Label" animator="$FTK_ANI_TO_UP" visible="1">
  5. <label id="1" x="5" y="5" w="$ww/4" h="30" value="Name" />
  6. <entry id="2" x="$ww/4+5" y="5" w="3*$ww/4-15" h="30" value="Li XianJing" />
  7.  
  8. <label id="3" x="5" y="40" w="$ww/4" h="30" value="EMail" />
  9. <entry id="4" x="$ww/4+5" y="40" w="3*$ww/4-15" h="30" value="xianjimli@hotmail.com" />
  10.  
  11. <label id="5" x="5" y="75" w="$ww/4" h="30" value="Mobile" />
  12. <entry id="6" x="$ww/4+5" y="75" w="3*$ww/4-15" h="30" value="+8613911112222" />
  13.  
  14. <button id="99" x="5" y="3*$wh/4" w="$ww/2-5" h="50" attr="$FTK_ATTR_INSENSITIVE" value="Save" />
  15. <button id="100" x="$ww/2" y="3*$wh/4" w="$ww/2-5" h="50" attr="$FTK_ATTR_FOCUSED" value="Quit" />
  16. </window>

上面脚本的内容事实上就是描写叙述了label、entry、button是怎么在windows中布局的。当然光有脚本也没有,它还须要代码的配合。眼下,在ftk demo中也存在这种demo代码。

  1. #include "ftk.h"
  2. #include "ftk_xul.h"
  3.  
  4. const char* t1 = "<window> </window>";
  5.  
  6. #define IDC_QUIT 100
  7.  
  8. static Ret button_quit_clicked(void* ctx, void* obj)
  9. {
  10. ftk_quit();
  11.  
  12. return RET_OK;
  13. }
  14.  
  15. static FtkIconCache* g_icon_cache = NULL;
  16. static FtkBitmap* my_load_image(const char* filename)
  17. {
  18. return ftk_icon_cache_load(g_icon_cache, filename);
  19. }
  20.  
  21. int FTK_MAIN(int argc, char* argv[])
  22. {
  23. if(argc > 1)
  24. {
  25. FtkWidget* win = NULL;
  26. FtkWidget* quit = NULL;
  27. ftk_init(argc, argv);
  28.  
  29. g_icon_cache = ftk_icon_cache_create(NULL, "testdata");
  30. win = ftk_xul_load_file(argv[1], NULL, my_load_image);
  31. ftk_widget_set_attr(win, FTK_ATTR_QUIT_WHEN_CLOSE);
  32.  
  33. quit = ftk_widget_lookup(win, IDC_QUIT);
  34. ftk_button_set_clicked_listener(quit, button_quit_clicked, win);
  35. ftk_widget_show_all(win, 1);
  36.  
  37. ftk_run();
  38. ftk_icon_cache_destroy(g_icon_cache);
  39. }
  40. else
  41. {
  42. ftk_logd("Usage: %s xul\n", argv[0]);
  43.  
  44. return 0;
  45. }
  46.  
  47. return 0;
  48. }

代码中除了主要的流程之外,主要是推断程序带了几个參数。有两个參数,继续处理;否则出错返回。那么,代码中做了什么呢。事实上也就是给button加入了一个回调函数而已。

老规矩,下次见效果图。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

ftk学习记录(脚本文章)的更多相关文章

  1. ftk学习记录(一个进度条文章)

    [ 声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 首先.在開始今天的文章之前.我们还是给朋友们展示一下前面一段代码的执行效果.效果例如以下, w ...

  2. ftk学习记录(多形式的文章)

    [声明:版权全部.欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在上周末的博客中,我们谈到了list view,今天能够看看效果图怎样. 假设大家细心一点,能够 ...

  3. ftk学习记录(IME文章)

    [声明:版权全部,欢迎转载.请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 前面说的是全屏设置,还是请大家看一下效果图. watermark/2/text/aHR0cDovL ...

  4. ftk学习记录(形成全屏幕套件)

    [声明:版权全部.欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 好久不写博客了.今天续上. 可是,我们还是看一下上一期的执行结果, watermark/2/te ...

  5. ftk学习记录(button一片)

    [ 声明:版权所有所有.欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 前面,我们说到了label,这里能够看一下label执行的效果是怎么样的. waterma ...

  6. Lua和C++交互 学习记录之一:C++嵌入脚本

    主要内容转载自:子龙山人博客(强烈建议去子龙山人博客完全学习一遍) 部分内容查阅自:<Lua 5.3  参考手册>中文版 译者 云风 制作 Kavcc vs2013+lua-5.3.3 1 ...

  7. ElasticSearch 学习记录之ES短语匹配基本用法

    短语匹配 短语匹配故名思意就是对分词后的短语就是匹配,而不是仅仅对单独的单词进行匹配 下面就是根据下面的脚本例子来看整个短语匹配的有哪些作用和优点 GET /my_index/my_type/_sea ...

  8. ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查询

    ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排 ...

  9. JavaScript学习记录一

    title: JavaScript学习记录一 toc: true date: 2018-09-11 18:26:52 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

随机推荐

  1. fullcalendar日历控件集合知识

    1.基本的语法: 首先,fullcalendar和JQUERY一样,以面向对象的方式来组织代码.当然,这里的面向对象不过指能够把整个fullcalendar理解为一个类,这个类里包含有非常多的属性.方 ...

  2. Shell在大数据的魅力时代:从一点点思路百度大数据面试题

    供Linux开发中的同学们,Shell这可以说是一个基本功. 对于同学们的操作和维护.Shell也可以说是一种必要的技能,Shell.对于Release Team,软件配置管理的同学来说.Shell也 ...

  3. java提高篇(六)-----关键字static

    一. static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个"伪全局"的概念,在Java中static表示"全局"或 ...

  4. 为什么windows dos和Linux shell有这样的差别??

    Windows dos随着impdp导入数据库: impdp "sys/password@ip:1521/sidname as sysdba" directory=dbdir du ...

  5. hibernate它5.many2one单向

    关系数据库表之间的关系: 1 正确 1 1 正确 许多 许多 正确 许多 表间关系设计 基于主键关联 基于外键关联 基于中间表 1 对 1关系实现: 基于主键关联 基于外键关联 基于中间表 1 对 多 ...

  6. PLSQL Developer下报错信息显示乱码问题

    PLSQL Developer下报错信息显示乱码问题 连接环境:win 7 数据库版本号:oracle 11g 模拟一个错误,查看错误提示显示"????"乱码问题,例如以下: 检查 ...

  7. linux学习(一个) 在unbuntu通过添加新的用户

    最近安装了双系统,开始折腾unbuntu该.Linux系统是一个多用户操作系统,非常多的人才完整的操作需要管理员权限,完全管理员权限是非常重要的.人谁是刚开始学习,般用户的权限即可了,相对于刚開始学习 ...

  8. RH253读书笔记(3)-Lab 3 Securing Networking

    Lab 3 Securing Networking Goal: To build skills with the Netfilter packet filter Sequence 1: Applyin ...

  9. asp.net web api KnownTypeAttribute

    项目里用到了继承,在序列化的时候遇到了问题. 源代码 public class Segment { public SegmentType Type { get; set; } public strin ...

  10. mousewheel 与 DOMMouseScroll

    FF使用DOMMouseScroll,其他浏览器使用mousewheel FF在一个特殊的属性event.detail.表示滚动的值 event.detail 正数:向下滚动,负数:向上滚动 滚动一次 ...