ftk学习记(icon篇)
【声明:版权全部,欢迎转载。请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
在開始今天的文章之前。我们还是先看一下上一节的效果图。
大家能够參照上一节的解说,是不是存在这种button,是不是存在这种wait_box控件,相同是不是能够看到wait_box活动的情形。当然,有条件的朋友最好自己编译一下这个demo代码。按步骤调试每一行代码。
今天,如标题所看到的。我们所学习的是icon的内容。简单一点说,此次基本的目的就是想在窗体上显示icon图像的内容。
至于怎样显示,大家能够跟着我一起看一下demo代码是怎样编写的。
#include "ftk.h" #define IDC_TEST_BUTTON 1000
static Ret button_quit_clicked(void* ctx, void* obj)
{
ftk_quit(); return RET_OK;
} static int i = 0;
static Ret button_more_clicked(void* ctx, void* obj)
{
int j = 0;
FtkIconViewItem item;
FtkWidget* icon_view = ftk_widget_lookup(ctx, 100);
item.icon = ftk_theme_load_image(ftk_default_theme(), "flag-32.png"); for(j=0; j < 4; j++)
{
char text[100] = {0};
ftk_snprintf(text, sizeof(text), "%d", i);
item.text = text;
ftk_bitmap_ref(item.icon);
item.user_data = (void*)i;
ftk_icon_view_add(icon_view, &item);
i+=1000;
}
ftk_bitmap_unref(item.icon); return RET_OK;
} static Ret item_clicked(void* ctx, void* obj)
{
FtkIconViewItem* item = obj; ftk_logd("%s: %s: user_data=%d\n", __func__, item->text, item->user_data); return RET_OK;
} int FTK_MAIN(int argc, char* argv[])
{
int width = 0;
int height = 0;
FtkWidget* win = NULL;
FtkWidget* button = NULL;
FtkWidget* icon_view = NULL;
FtkIconViewItem item;
ftk_init(argc, argv); win = ftk_app_window_create();
width = ftk_widget_width(win);
height = ftk_widget_height(win); button = ftk_button_create(win, 10, 0, width/3-10, 60);
ftk_widget_set_text(button, "more");
ftk_button_set_clicked_listener(button, button_more_clicked, win);
ftk_window_set_focus(win, button); button = ftk_button_create(win, 2*width/3, 0, width/3-10, 60);
ftk_widget_set_text(button, "quit");
ftk_button_set_clicked_listener(button, button_quit_clicked, win);
ftk_window_set_focus(win, button); item.icon = ftk_theme_load_image(ftk_default_theme(), "flag-32.png");
icon_view = ftk_icon_view_create(win, 5, 70, width-10, height-80);
ftk_widget_set_id(icon_view, 100);
ftk_icon_view_set_clicked_listener(icon_view, item_clicked, win);
for(; i < 4; i++)
{
char text[100] = {0};
ftk_snprintf(text, sizeof(text), "%d", i);
item.text = text;
item.user_data = (void*)i;
ftk_icon_view_add(icon_view, &item);
} ftk_bitmap_unref(item.icon);
ftk_widget_set_text(win, "icon view demo");
ftk_widget_show_all(win, 1);
ftk_widget_set_attr(win, FTK_ATTR_QUIT_WHEN_CLOSE); ftk_run(); return 0;
}
如代码所看到的,系统在进行的必要的初始化之后,就立即创建了button控件、 icon_view、item等对象。
button对象,我们之前已经讨论过非常多次了,这次忽略不考虑。此次主要学习的是icon_view这个对象。它的主要目的就是在window中创建一片icon_view空间。创建成功之后。我们就能够通过函数ftk_icon_view_add向里面加入item对象了。是不是非常easy呢?那button这里是起什么作用呢,我们能够继续往下看。假设细致看一下,大家能够发现button_more_clicked中的内容和main函数中的内容差点儿相同,无非就是向icon_view对象中多加入了几个item而已。
当然,每一个item在被选中的时候。系统都会调用call back函数item_clicked进行必要的额外操作。
欲看效果怎样。且听下回分解。
ftk学习记(icon篇)的更多相关文章
- ftk学习记(消息框篇)
[ 声明:版权全部,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 上一篇说到了输入框.闲话不多说,首先看结果显示, 大家看看效果是不是和我们之前说的一样.今天, ...
- ftk学习记(label篇)【转】
转自:http://blog.csdn.net/feixiaoxing/article/details/25000093 版权声明:本文为博主原创文章,未经博主允许不得转载. [ 声明:版权所有,欢迎 ...
- ftk学习记(label篇)
[ 声明:版权全部,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 还是接着上面的一篇博文. 之前以前答应过大家,让大家看一下最简单的ftk程序是怎么执行的.所以 ...
- ftk学习记(首篇)
[ 声明:版权全部,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 非常早之前就知道ftk了,当时主要是由于买了李先静的书,所以知道了这么一个项目.由于对这样的g ...
- ftk学习记(对话框篇)
[声明:版权全部,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 前面谈到了输入法,首先看一看效果. 上面有4个输入框,大家能够分别试试,看看效果怎样. 今天,我 ...
- ftk学习记(list篇)
[声明:版权全部,欢迎转载.请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在開始今天的list主题之前,先看一下icon的执行效果. 今天说的list事实上和这个icon几 ...
- ftk学习记(滑动条篇)
[声明:版权全部,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 前一篇说到了combox.就先看一下效果吧. 说完了combox,就谈谈今天的滑动条.滑动条,当然 ...
- ftk学习记(输入框篇)
[ 声明:版权全部.欢迎转载.请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 昨天讲了进度条,我们还是看看它的运行效果是怎么样的.截图例如以下, 进度条使用的情况还是比較多的 ...
- ftk学习记(waitbox篇)
[声明:版权全部.欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 前面说到了脚本.那么就看看ftk中demo与script搭配的效果是什么样的? 上面的效果图就相 ...
随机推荐
- C语言的本质(26)——C标准库之数值字符串转换
C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串. #include <stdlib.h> int atoi(const char *nptr); a ...
- codevs1039 数的划分
题目描述 Description 将整数n分成k份,且每份不能为空,任意两种划分方案不能相同(不考虑顺序). 例如:n=7,k=3,下面三种划分方案被认为是相同的. 1 1 5 1 5 1 5 1 1 ...
- HDU2114 Calculate S(n) (取模算术)
Calculate S(n) Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- stl_map,set 用法
set: 集合a,b加起来,去重 hdu 1406 #include <iostream> #include<cstdio> #include<set> using ...
- C#打印条码BarTender SDK打印之路和离开之路(web平凡之路)
从来没想过自己会写一篇博客,鉴于这次从未知的探索到一个个难点的攻破再到顺利打印,很想记录这些点滴,让后人少走弯路. 下面走进正题. 需求:取数据库里的相应的字段数据,并生成条形码,可以批量.单条打印. ...
- 新手学习.net编程计划-1
.NET是一个庞大的学习体系,对于新手来说会感觉无从下手.学习知识必须从入门的基础学起,才能更好地掌握.学习.net也是如此,最基础的莫过于了解.net平台,以及掌握.net的基础语法C#. 本计划是 ...
- C#中HashTable的用法 【转】
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中 ...
- InterLockedIncrement and InterLockedDecrement函数原理
实现数的原子性加减. 什么是原子性的加减呢? 举个样例:假设一个变量 Long value =0; 首先说一下正常情况下的加减操作:value+=1. 1:系统从Value的空间取出值,并动态生成一个 ...
- [jQuery]无法获取隐藏元素(display:none)宽度(width)和高度(height)的新解决方案
在做茶城网改版工作的时候,又遇到一个新问题,我需要用jQuery写一个通过点击左右图标来翻阅图片的小插件,写好后测试可以正常运行,但是放到Tab中后发现只有第一个Tab中的代码能够正常运行,其它全部罢 ...
- css系列教程--css文件的创建
css文件的创建:1.外部样式表:<link rel="stylesheet" type="text/css" href="mystyle.cs ...