64,654
社区成员
发帖
与我相关
我的任务
分享
void mainWindow::create_connection()
{
connect(button, SIGNAL(clicked()), this, SLOT(show_progress()) );
}
void mainWindow::show_progress()
{
download_progress_bar_->setValue(min);
download_progress_bar_->setRange(min, max);
download_progress_bar_->setVisible(true);
set_progress_value(); //你可以在这里设定你的进度条的进度
}
class Progress {
virtual void onProgress(float value) = 0;
};
class ProgressPrinter : public Progress {
void onProgress(float value) {
cout<<"progress"<<value;
}
};
class Worker {
void doWork(Progress& progress) {
for (int i=1; i<=100; ++i) {
// do some calculation
progress->onProgress((float)i);
}
}
};
void button_clicked(...) {
Worker* worker = new Worker();
ProgressPrinter printer;
worker->doWork(printer);
}
// 回调方法接口定义
void (progressCallback)(float progress);
// 具体的回调方法
void progressPrint (float progress) {
cout<<"progress:"<<progress;
}
void doWork(progressCallback method) {
for (int i=1; i<=100; ++i) {
// do some calculation
method((float)i);
}
}
int main() {
doWork(progressPrint);
return 0;
}