2016-07-29 93 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)); 

}