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

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

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

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

有兴趣的朋友能够找到这段代码,看一下执行的效果怎样。

今天,我们能够看一下进度条的相关代码。

进度条,说简单也简单。说复杂也复杂。

我想,关于进度条大家印象最深的就是之前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%。就结束了。

相同,执行效果下次再现。

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

时间: 2024-07-30 10:07:55

ftk学习记录(一个进度条文章)的相关文章

Android学习笔记:进度条ProgressBar的使用以及与AsyncTask的配合使用

ProgressBar时android用于显示进度的组件.当执行一个比较耗时的操作(如io操作.网络操作等),为了避免界面没有变化让用户体验降低,提供一个进度条可以让用户知道程序还在运行. 一.ProgressBar有如下几种常见样式 1.默认进度条的样式为圆圈(为中等大小的圆圈) <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" />

IOS开发学习笔记-(3) 进度条、等待动画开始停止

一.创建对应空间视图  ,如下图: 二.编写对应的 .h 代码,如下 : #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activWaitNetWork; @property (weak, nonatomic) IBOutlet UIProgressView *pgrsDownLo

Android学习笔记(24):进度条组件ProgressBar及其子类

ProgressBar作为进度条组件使用,它还派生了SeekBar(拖动条)和RatingBar(星级评分条). ProgressBar支持的XML属性: Attribute Name Related Method Description style 设置ProgressBar指定风格 android:indeterminate 设置为true时,进度条不显示运行进度 android:indeterminateBehavior indeterminate模式下.当进度条达到最大值时的动画处理行为

Android 基于帧布局实现一个进度条 FrameLayout+ProgressBar

在FrameLayout中添加一个ProgressBar居中 <ProgressBar android:layout_gravity="center" android:id="@+id/progressBar1" style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height=&qu

学习 | css3实现进度条加载

进度条加载是页面加载时的一种交互效果,这样做的目的是提高用户体验. 进度条的的实现分为3大部分:1.页面布局,2.进度条动效,3.何时进度条增加. 文件目录 加载文件顺序 <link rel="stylesheet/less" href="./index.less"> <script src="./zepto.min.js"></script> <script src="./less.js&qu

Android学习笔记:进度条ProgressBar和线程

ProgressBar是进度条,android中的指示器,先看效果图 上图中水平进度条可以看见有两种颜色,浅色的是SecondaryProgress,可以用作展示中间进度用. ProgressBar是有多种样式的,有水平的和圆圈打转的.若需要指示进度的可以使用水平的,其他样式在可以在android api文档找到 Other progress bar styles provided by the system include: Widget.ProgressBar.Horizontal Widg

Javascript实现一个进度条

HTML代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head>     <meta http-equiv="Content-Type" content="text/html;charset=utf-8"&

Framework7新版学习笔记之 进度条

一:定义进度条 <span data-progress="进度值" class="progressbar" id="进度条id" color-xx></span> 二:在js中改变进度值 app.progressbar.set('#进度条', 进度值); 三:无限加载进度条 <span class="progressbar-infinite color-multi"></span>

ftk学习记录(IME文章)

[声明:版权全部,欢迎转载.请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 前面说的是全屏设置,还是请大家看一下效果图. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVpeGlhb3hpbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" /> 想看全屏效果的,能够单击一下左边的button.假设恢复到原来的