2016-07-29 220 views
-2

我有两个类,A和B. ClassA调用classB中的一个方法,它通过一个大循环进行迭代。 ClassA还打印到Qt消息框。我想要的是能够从classA打印%完整的消息框。有没有办法在C++中做到这一点?将消息传递给C++调用者

ClassA calls ClassB.method(); 

ClassA <-- 10% -- ClassB.method(); 

ClassA -- 10% --> MessageBox 
+1

_ “有没有办法做到这一点在C++?” 结束_是的,有。查找_callback函数_以及如何使用课程注册这些函数。 –

+0

@πάνταῥεῖ当然在Qt中你已经有信号,所以你不需要明确地使用回调:) –

+0

Thay *是*回调 - 即使它们伪装了一下。 –

回答

5

由于您使用的是Qt,因此在进度更改时会在B中发出信号。将该信号连接到A中更新进度显示的插槽。这就是你需要的。

0

//在您的循环上方

int IterationsToDo =#; int IterationsDone = 0;

double Progress = 0;

//在你的循环

{

//Loop logic here 


IterationsDone++; 
Progress = IterationsDone/IterationsToDo; 
MessageFunctionHere(std::to_string(Progress)); 

}