小编Nor*_*rwE的帖子

实现进度条类

我正在使用" 使用C++编程原理和实践 "一书学习c ++.第16章介绍了通过接口库使用FLTK库的gui部分的技术.

本章中的练习之一是动画图像的动画,由一个类中实现的启动和停止按钮控制.对于计时我发现使用FLTK Fl::add_timeout并且Fl::repeat_timeout是一个比进入无限循环更好的解决方案并使用Sleep(),阻止其他回调.

我没有成功使用Fl::add_timeout和实现工作解决方案Fl::repeat_timeout,但是在这里使用带有开始和停止按钮的进度条找到了一个示例:

#include <FL/Fl.H> 
#include <FL/Fl_Double_Window.H> 
#include <FL/Fl_Progress.H> 
#include <FL/Fl_Button.H> 

Fl_Progress* progBar; 

void runcount(void*) 
{ 
    if (progBar->value() == progBar->maximum()) 
    { 
        Fl::remove_timeout(runcount); 
        progBar->value(0); 
    } 
    else 
    { 
        Fl::repeat_timeout(1, runcount); 
        progBar->value(progBar->value() + 1); 
    } 
} 

void cb_startb(void) 
{ 
    Fl::add_timeout(1, runcount); 
} 

void cb_stopb(void) 
{ 
    Fl::remove_timeout(runcount); 
} 

int main (int argc, char *argv[]) 
{ 
    Fl_Double_Window window(200,70,"ProgressBar Test"); 
    progBar = new Fl_Progress(5, 10, window.w()-10, 20); 
    progBar->box(FL_SHADOW_BOX); 
    progBar->selection_color((Fl_Color)4); 
    progBar->minimum(0); 
    progBar->maximum(10); 

    Fl_Button* …
Run Code Online (Sandbox Code Playgroud)

c++ pointers callback fltk

6
推荐指数
1
解决办法
520
查看次数

标签 统计

c++ ×1

callback ×1

fltk ×1

pointers ×1