FTK GUI API

在使用FTK时要先进行初始化工作,调用函数:ftk_init(argc, argv)
在程序结束时要执行如下函数:ftk_run()

控件通用属性:
设置控件显示文本:ftk_widget_set_text(widget, "显示");
显示全部控件:ftk_widget_show_all(win, 1);
设置控件属性:ftk_widget_set_attr(win, FTK_ATTR_QUIT_WHEN_CLOSE);
设置控件ID:ftk_widget_set_id(widget, 100);


窗体控件:
声明一个窗体指针:FtkWidget* win
创建一个窗体:win = ftk_app_window_create();
创建一个窗体:win = ftk_window_create(0, 0, 320, 480);
获取窗体的宽度:width = ftk_widget_width(win);
获取窗体的高度:height = ftk_widget_height(win);
设置控件显示文本:ftk_widget_set_text(win, "显示");
设置窗体当前焦点:ftk_window_set_focus(win, button);
关闭一个窗体:ftk_widget_unref(win);


按键控件:
声明一个按钮指针:FtkWidget* button
创建一个按钮:button = ftk_button_create(win, x, y, width, height)
设置按钮显示文本:ftk_widget_set_text(button, "显示");
设置按键点击事件:ftk_button_set_clicked_listener(button, button_show_clicked, win);
注:事件函数的声明方式如下
Ret button_show_clicked(void* ctx, void* obj)
另外,按钮上的文本长度要小于等于按钮的宽度!!!!

check button控件:(复选框)
创建checkbutton控件:ftk_check_button_create(win,x, y, width, height);
设置check button控件的点击事件:ftk_check_button_set_clicked_listener(button, button_clicked, win);

注:checkbutton控件的图片像素高度是48像素,所以高度值最小是48,而其宽度为38像素,如果不添加文本,那么可指定其高度和宽度为38*48

radio button控件:(单选框)
创建radio button组:ftk_radio_group_create(win, x, y, width, height);注:这里的和宽度高度分别是指这组单选按钮(若干个)所占宽度和高度,而且这里的高度与宽度也是响应鼠标点击事件的范围,如果高度大于控件的像素高度,那么如果鼠标点击控件以外,只要是创建这个radio组时设置了大于radio组的显示区域,那么就会响应事件。
注:在默认情况下,radio控件的文本内容在radio控件的右侧,即radio控件在左,文本在右。
设置按钮图标显示位置:(1:图标在右,文本在左;0:图标在左,文本在右(默认))ftk_check_button_set_icon_position(radio_button, 1);

combo_box控件:
创建一个combo_box控件:ftk_combo_box_create(win, x, y, width, height);
设置combo_box控件的默认显示文本:ftk_combo_box_set_text(combo_box, "1 second");
往combo_box控件中添加相应文本项:ftk_combo_box_append(combo_box, NULL, "1 second");注:NULL为执行相应的函数
********************(在本例中无法显示中文???)*******************

entry控件:
声明一个entry控件:FtkWidget* entry  = NULL;;
创建一个entry控件:ftk_entry_create(win, x, y, width, height);
设置entry控件显示文本:ftk_entry_set_text(entry, "1234(digit only)");
设置entry事件函数:ftk_widget_set_event_listener(entry, ftk_digit_only_filter, NULL);

FtkIconViewItem控件:
声明一个FtkIconViewItem对象:FtkIconViewItem item;
从主题中加载图标: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);注:在这之前要创建一个图标控件指针FtkWidget* icon_view = NULL;
设置icon_view控件的ID:ftk_widget_set_id(icon_view, 100);
设置控件icon_view的点击事件:ftk_icon_view_set_clicked_listener(icon_view, item_clicked, win);
添加一个icon_view:ftk_icon_view_add(icon_view, &item);
ftk_bitmap_unref(item.icon);???

image:
声明一个定时器:FtkSource* timer = NULL;
创建一个定时器:timer = ftk_source_timer_create(5000, timeout, NULL);
定时器信息:TimerInfo info = {.times=5, };
注:    FtkSource* timer = ftk_source_timer_create(1000, timeout, &info);第三个参数是指将info当作参数传递给创建函数
创建一个image控件:FtkWidget* image = NULL;
设置显示图像:ftk_image_set_image(image, ftk_bitmap_factory_load(ftk_default_bitmap_factory(), filename));
因为开始已声明一个source定时器,所以要添加一个source到main中:ftk_main_loop_add_source(ftk_default_main_loop(), timer);

声明一个GC:FtkGc gc
获得可显示区域的宽度:width=ftk_display_width(ftk_default_display());
获得可显示区域的高度:height = ftk_display_height(ftk_default_display()) - FTK_STATUS_PANEL_HEIGHT;
状态显示面板高度:FTK_STATUS_PANEL_HEIGHT

输入法:
设置entry输入法:ftk_entry_set_input_method(entry, 0);//注:0是五笔,1是拼音,2是英文输入

标签:
声明并创建一个标签:FtkWidget* label = ftk_label_create(win, 10, 10, width - 20, 20);
设置标签的文本内容:ftk_widget_set_text(label, "中文文本");
获取控件显示内容:ftk_widget_get_text(widget)
颜色设置
bg——背景颜色 fg——前景颜色
    gc.bg.a = 0xff;
    gc.bg.r = 0xF0;
    gc.bg.g = 0xF0;
    gc.bg.b = 0x80;
设置控件颜色:ftk_widget_set_gc(label, FTK_WIDGET_INSENSITIVE, &gc);

listview:
声明一个listview控件:FtkWidget* list = NULL;
声明一个listview model:FtkListModel* model = NULL;
声明一个listview render:FtkListRender* render = NULL;
声明一个listiteminfo:FtkListItemInfo info = {0};
创建一个listview:list = ftk_list_view_create(win, x, y, width, height);
设置listview点击事件:ftk_list_view_set_clicked_listener(list, on_item_clicked, NULL);//NULL为传递参数
创建listview模式:model = ftk_list_model_default_create(10);
创建listview render:render = ftk_list_render_default_create();
listview初始化:ftk_list_view_init(list, model, render, 40);

msgbox无法显示中文:
创建一个警告弹出对话框:
int ret = ftk_warning("Warning", "December 31, 2008: patchwork.kernel.org is now available for general use.", buttons1);
ret为点击按钮的返回值,其中buttons1为如下定义:
static const char* buttons1[] = {"Yes", NULL};注:以上只定义了一个按钮,如果想让警告对话框显示多个选项,可直接添加相应显示信息即可,如static const char* buttons1[] = {"Yes","no", NULL};,而其返回值即字符串下标+1
同理:int ret = ftk_infomation("Infomation", "September 19, 2008: mirrors.kernel.org has been flipped over to using our new GeoDNS based bind server (named-geodns).", buttons2);
创建信息对话框
创建提问对话框:int ret = ftk_question("Question", "Are you sure to quit?", buttons3);
创建提示对话框:int ret = ftk_tips("The dialog will quit in 3 seconds.");

进度条:
声明一个进度条控件:FtkWidget* progress_bar = NULL;
创建一个进度条:progress_bar = ftk_progress_bar_create(win, x, y, width, height);
ftk_progress_bar_set_percent(progress_bar, 20);注20是进度条的初始值
创建一个依附于进度条的定时器:timer = ftk_source_timer_create(1000, update_progress, progress_bar);
进度条的默认处理回调函数:static Ret update_progress(void* ctx)
获取进度条当前值:int percent = ftk_progress_bar_get_percent(progress_bar);

滑动块:
声明一个滑动块:FtkWidget* scroll_bar = NULL;
创建一个滑动块:scroll_bar = ftk_scroll_bar_create(win, x, y, width, height);注:这里的x,y,height,width是滑动块的整个可显示区域
设置滑动块参数:ftk_scroll_bar_set_param(scroll_bar, start_val, all_length, scroll_lenth);参数分别表示:滑动块的起始值,即指定起始位置,第二个参数为整个滑动块可滑动的长度,最后一个参数是滑动块的长度,通过这些值可计算滑动块整个滑动范围即:(0, all_length-scroll_length);
设置滑动块默认处理事件:ftk_scroll_bar_set_listener(scroll_bar, scroll_bar_on_scroll, NULL);

文本显示框:
声明一个文本显示视图:FtkWidget* text_view  = NULL;
创建一个文本显示视图:text_view = ftk_text_view_create(win, x, y, width, height);
设置文本显示视图显示内容:ftk_text_view_set_text(text_view, string);
设置文本显示视图只读属性:ftk_text_view_set_readonly(text_view, 1);

声明一个位图:FtkBitmap* bitmap
加载一个位图:bitmap = ftk_bitmap_factory_load(ftk_default_bitmap_factory(), filename);

如右所示,创建一个标签,但是第一个参数与之前不同,这里表示依附于哪个窗体:label = ftk_label_create(dialog, width/8, height/2, 3*width/4, 20);
声明并创建一个对话框:FtkWidget* dialog = ftk_dialog_create(x, y, width, height);

wait_box:即等待时显示的圆形图标,滚动显示类似于WIN下的忙标志
声明一个wait_box控件:FtkWidget* wait_box = NULL;
创建一个wait_box:wait_box = ftk_wait_box_create(win, x, y);
开始启动wait_box:ftk_wait_box_start_waiting(wait_box);
停止wait_box:ftk_wait_box_stop_waiting(wait_box);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值