यदि आपने गुई टूलकिट के साथ काम किया है, तो आप जानते हैं कि एक इवेंट-लूप/मेन-लूप है जिसे सब कुछ करने के बाद निष्पादित किया जाना चाहिए, और यह एप्लिकेशन को विभिन्न घटनाओं के लिए जीवंत और उत्तरदायी बनाए रखेगा। मुख्य उदाहरण के लिए, क्यूटी के लिए, तो आप इस में क्या करना होगा():आप एक बुनियादी घटना-लूप कैसे कार्यान्वित करेंगे?
int main() {
QApplication app(argc, argv);
// init code
return app.exec();
}
जो इस मामले में, app.exec() आवेदन के मुख्य पाश है।
स्पष्ट तरीका पाश इस तरह लागू करने के लिए होगा:
void exec() {
while (1) {
process_events(); // create a thread for each new event (possibly?)
}
}
लेकिन यह 100% सीपीयू को सीमित करता है और व्यावहारिक रूप से बेकार है। अब, मैं ऐसे इवेंट लूप को कैसे कार्यान्वित कर सकता हूं जो सीपीयू को पूरी तरह से खाने के बिना उत्तरदायी है?
उत्तर पाइथन और/या सी ++ में सराहना की जाती है। धन्यवाद।
फुटनोट: सीखने के लिए, मैं अपने स्वयं के संकेत/स्लॉट लागू करूंगा, और मैं कस्टम ईवेंट उत्पन्न करने के लिए उन लोगों का उपयोग करूंगा (उदा। go_forward_event(steps)
)। लेकिन अगर आप जानते हैं कि मैं सिस्टम इवेंट मैन्युअल रूप से कैसे उपयोग कर सकता हूं, तो मैं इसके बारे में भी जानना चाहता हूं।
मेरा मानना है कि आप क्यूटी के स्रोत कोड में तल्लीन हैं और देखते हैं जैसा कि वे कार्यकारी में कर रहे हैं() कर सकते हैं। इससे आपको कुछ अच्छे पॉइंटर्स मिलेंगे। – JimDaniel