首页 > 其他分享 >ftk学习记(进度条篇)

ftk学习记(进度条篇)

时间:2022-11-23 12:02:38浏览次数:40  
标签:bar 进度条 win timer 学习 progress ftk


    首先,在开始今天的文章之前,我们还是给朋友们展示一下前面一段代码的运行效果。效果如下,


ftk学习记(进度条篇)_进度条


    有兴趣的朋友可以找到这段代码,看一下运行的效果如何。


    今天,我们可以看一下进度条的相关代码。进度条,说简单也简单,说复杂也复杂。我想,关于进度条大家印象最深的就是之前windows xp启动的情况,这里里边就有一个进度条。同样,我还是比较喜欢用代码来说明问题,


#include "ftk.h"

static Ret button_quit_clicked(void* ctx, void* obj)
{
ftk_quit();

return RET_OK;
}

static Ret update_progress(void* ctx)
{
int percent = 0;
FtkWidget* progress_bar = ctx;

percent = ftk_progress_bar_get_percent(progress_bar);
if(percent == 100)
{
return RET_REMOVE;
}
ftk_progress_bar_set_percent(progress_bar, percent + 10);

return RET_OK;
}

int FTK_MAIN(int argc, char* argv[])
{
int width = 0;
int height = 0;
FtkWidget* win = NULL;
FtkWidget* button = NULL;
FtkWidget* progress_bar = NULL;
FtkSource* timer = NULL;

ftk_init(argc, argv);

win = ftk_app_window_create();
width = ftk_widget_width(win);
height = ftk_widget_height(win);

width = width - 20;
progress_bar = ftk_progress_bar_create(win, 10, height/6, width, 20);
ftk_progress_bar_set_percent(progress_bar, 20);
timer = ftk_source_timer_create(1000, update_progress, progress_bar);
ftk_main_loop_add_source(ftk_default_main_loop(), timer);

progress_bar = ftk_progress_bar_create(win, 10, height/3, width, 20);
ftk_progress_bar_set_percent(progress_bar, 20);
timer = ftk_source_timer_create(1000, update_progress, progress_bar);
ftk_main_loop_add_source(ftk_default_main_loop(), timer);

progress_bar = ftk_progress_bar_create(win, 10, height/2, width, 20);
ftk_progress_bar_set_percent(progress_bar, 20);
timer = ftk_source_timer_create(1000, update_progress, progress_bar);
ftk_main_loop_add_source(ftk_default_main_loop(), timer);

button = ftk_button_create(win, width/4, 3*height/4, width/2, 60);
ftk_widget_set_text(button, "quit");
ftk_button_set_clicked_listener(button, button_quit_clicked, win);
ftk_window_set_focus(win, button);

ftk_widget_set_text(win, "progress_bar demo");
ftk_widget_show_all(win, 1);
ftk_widget_set_attr(win, FTK_ATTR_QUIT_WHEN_CLOSE);

ftk_run();

return 0;
}


    ftk的流程,之前的文章都已经涉及了,这里就不再赘述了。在此,我们只需要关注进度条的相关代码就可以了。从代码中不难发现,这里除了创建1个button之外,还创建了3个进度条。进度条的初始数值都是20%。那么进度条是怎么增加的呢?其实,这里代码还创建了3个timer。它告诉我们,每隔一段时间都会调用update_progress这个函数,此时进度条会有相应的增加。一旦100%,就结束了。


    同样,运行效果下次再现。



标签:bar,进度条,win,timer,学习,progress,ftk
From: https://blog.51cto.com/feixiaoxing/5880823

相关文章

  • ftk学习记(button篇)
      前面,我们说到了label,这里可以看一下label运行的效果是怎么样的。  大家可以对照上面的结果图,看看我们之前的描述是否正确。  说完了label,可以看看button是怎......
  • ftk学习记(首篇)
        很早之前就知道ftk了,当时主要是因为买了李先静的书,所以知道了这么一个项目。因为对这种gui的代码很感兴趣,所以在我闲暇的时候也会拿来看一看。从整个工程来看,代码......
  • ftk学习记(label篇)
      还是接着上面的一篇博文。之前曾经答应过大家,让大家看一下最简单的ftk程序是怎么运行的。所以,这里我们上传一下图片。  因为还是编辑模式,所以暂时还不能看到图片......
  • MarkDown学习
    Markdown学习标题一级标题#+标题名二级标题##+标题名三级标题###+标题名字体正常字体Hello,World!Hello,World!文字两边加双星号为加粗字体Hello,World!......
  • unity学习笔记03-渲染管线
    图形数据在GPU上经过运算处理,最后显示在显示器上的过程游戏→图形API→cpu→(DRAWCALL)交给GPU→顶点处理→图元装配→光栅化→像素处理→缓存减少DRAWCALL 增加性能O......
  • 本人学习整理了-美妆类目完整直播话术框架流程➕话术提纲➕话术美妆类目完整直播话术
    本人当主播2年和运营1年,自己练习和整理的笔记分享详情内容,包括开场话术、活动话术、产品话术、品牌介绍、建立信任、优惠力度理由、促销、憋单技巧话术、互动话术、转款话......
  • 随想录(机器学习的生产应用)
    【声明:版权所有,欢迎转载,请勿用于商业用途。     从范围上讲,人工智能>机器学习>模式识别。最近机器学习愈演愈烈,特别是深度学习的发展,极大的推动了机器学习的应......
  • Python 深度学习目标检测评价指标
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 技术博客学习
    https://www.cnblogs.com/yangzhou33/archive/2020/11.htmlhttps://yuancheng.work/vue插槽学习https://blog.csdn.net/weixin_41646716/article/details/80450873......
  • Vue3学习笔记(七)—— 状态管理、Vuex、Pinia
    一、状态管理1.1、什么是状态管理?理论上来说,每一个Vue组件实例都已经在“管理”它自己的响应式状态了。我们以一个简单的计数器组件为例:<scriptsetup>import{re......