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

在上周末的博客中,我们谈到了list view,今天可以看看效果图如何。

如果大家细心一点,可以发现list中的item有点差异,有兴趣的朋友可以思考一下原因是什么,其实可以代码中看出来的。今天,我们聊的是多窗口的问题。大多数app,很少是一个窗口上完成所有的功能的。闲话不多说,先看代码。

#include "ftk.h"static void create_app_window(void);
static Ret button_open_clicked(void* ctx, void* obj)
{create_app_window();return RET_OK;
}static Ret button_close_clicked(void* ctx, void* obj)
{FtkWidget* win = ctx;ftk_logd("%s: close window %s\n", __func__, ftk_widget_get_text(win));ftk_widget_unref(win);return RET_OK;
}static int g_index = 0;
static void on_window_close(void* user_data)
{g_index--;ftk_logd("%s: g_index=%d\n", __func__, g_index);if(g_index == 0){ftk_quit();}return ;
}static void create_app_window(void)
{char title[32] = {0};int width = 0;int height = 0;FtkWidget* win = ftk_app_window_create();FtkWidget* label = NULL;FtkWidget* button = NULL;width = ftk_widget_width(win);height = ftk_widget_height(win);button = ftk_button_create(win, 0, height/6, width/3, 50);ftk_widget_set_text(button, "创建窗口");ftk_button_set_clicked_listener(button, button_open_clicked, win);button = ftk_button_create(win, 2*width/3, height/6, width/3, 50);ftk_widget_set_text(button, "关闭窗口");ftk_button_set_clicked_listener(button, button_close_clicked, win);snprintf(title, sizeof(title), "window%02d", g_index++);label = ftk_label_create(win, width/4, height/2, width/2, 30);ftk_widget_set_text(label, title);ftk_widget_set_text(win, title);ftk_widget_show_all(win, 1);ftk_widget_set_user_data(win, on_window_close, win);return;
}int main(int argc, char* argv[])
{ftk_init(argc, argv);create_app_window();ftk_run();return 0;
}

从代码中,大家可以发现出现了流程中出现了一个create_app_window这个函数。这个函数不仅出现在系统初始的流程中,而且出现在button_open_clicked这个函数中。这说明系统在初始运行的时候,就会创建一个窗口,而且以后每次单击“创建窗口”按钮的时候,也会在当前的窗口之上增加一个窗口。当然如果想关闭当前窗口,直接单击“关闭窗口”这个按钮就可以了。

闲话不多说,下次上效果图。

ftk学习记(多窗口篇)相关推荐

  1. ftk学习记(窗口全屏设置篇)

    [声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 好久不写博客了,今天续上.但是,我们还是看一下上一期的运行结果, 上面窗口中有5个button, ...

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

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

  3. ftk学习记(首篇)

    [ 声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 非常早之前就知道ftk了,当时主要是由于买了李先静的书,所以知道了这么一个项目.由于对这样的g ...

  4. ftk学习记(combox篇)

    [声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 上一篇文章谈到了多窗口,还是按照约定看一下效果是什么样的. 如果大家细心一点,就会发现窗口中的l ...

  5. ftk学习记(脚本篇)

    [声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 上一篇说到了对话框,今天就看看结果. 对话框不复杂,今天我们就来谈一谈脚本.有过android开 ...

  6. ftk学习记(button篇)

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

  7. ftk学习记(list篇)

    [声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在开始今天的list主题之前,先看一下icon的运行效果. 今天说的list其实和这个icon差 ...

  8. ftk学习记(waitbox篇)

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

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

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

  10. ftk学习记(输入法篇)

    [声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 前面说的是全屏设置,还是请大家看一下效果图. 想看全屏效果的,可以单击一下左边的button.如 ...

最新文章

  1. Js 原型对象与原型链(转)
  2. CIW《操作系统安全》目录
  3. halcon初学者知识【16】如何将Image图象的区域拷贝出来?
  4. 2013年最佳Android平板
  5. MFC-CString与int互相转化
  6. eclipse各个版本的区别
  7. (89)FPGA三分频设计,面试必问(十三)(第18天)
  8. 机器学习在B站推荐系统的应用实践
  9. 5月8号--华为正式推出新企业标识
  10. 数据清洗Chap5——数据转换
  11. GB28181协议--心跳
  12. 卫星遥感影像查询网址
  13. SCCM 2012 R2部署,SCCM配置(五)
  14. 【apt】The following signatures couldn‘t be verified because the public key is not available
  15. 什么叫最少拍计算机控制系统,最少拍无波纹计算机控制系统的一种综合方法.doc...
  16. 专家称银行收取小额账户管理费不合法不道德-小额账户管理费-储户
  17. 20230429作业
  18. 快速设置电脑自动关机
  19. python glob.glob()
  20. C++中使用map时,it->second是什么意思?

热门文章

  1. 我们做了一款无网远程运维的智能硬件,坐等运维工程师“翻牌”
  2. 货币化物联网:实现收益
  3. 《企业软件交付:敏捷与高效管理精要》——2.8 结论
  4. 如何让nodejs在linux后台运行
  5. Week 1 Team Homework #3 from Z.XML-软件工程在北航
  6. 简单的JSP分页显示
  7. OpenXml开发-向Excel2007文档中添加数据
  8. 2018 ACM-ICPC World Finals - Beijing F.Go with the Flow
  9. Spring事物管理(二)
  10. docfx组件介绍--MarkdownLite