मेरे पास लगभग 1000 QGraphicsItems के साथ एक QGraphicsScene है, जो वास्तव में भौतिकी आइटम हैं। प्रत्येक फ्रेम जो वे आगे बढ़ते हैं, टकराव की जांच करते हैं, और उन चीजों को हल करते हैं, अन्य चीजों के साथ। मैं वास्तव में भौतिकी multithreaded करना पसंद करेंगे।क्यूटी भौतिकी दृश्य मल्टीथ्रेडिंग
यह मेरी समझ है कि क्यूग्राफिक्स कक्षाएं थ्रेड-सुरक्षित नहीं हैं। मतलब, वे केवल मुख्य धागे से बुलाया जा सकता है। क्या यह मुझे सिग्नल/स्लॉट तंत्र का उपयोग करके मुख्य थ्रेड में अंतिम फ्रेम गुणों (एक्स, वाई, रोटेशन) भेजने के लिए मजबूर करता है, और उसके बाद वास्तव में QGraphicsItems को अद्यतन करने के लिए मुख्य थ्रेड विधि का उपयोग करता है? या ऐसा करने का कोई आसान तरीका है?
केवल एक परिकल्पना है: क्या मैं QGCraphcurrent का उपयोग QGraphicsItems की सूची में एक विधि चलाने के लिए कर सकता हूं? अगर मैं अपने भौतिकी विधि (जो कि मेरे क्यूग्राफिक्स इटैम के गुणों को बदल देगा) में मेरे क्यूग्राफिक्स इटिम पेंट विधि और क्यूएमयूटीएक्स में क्यूएमयूटीएक्स का उपयोग करता है, तो क्या यह गारंटी देगा कि केवल एक थ्रेड प्रत्येक QGraphicsItem को किसी भी समय पठन/लिख रहा है?
मैंने सिग्नल/स्लॉट को कनेक्ट करते समय QueuedConnection का उपयोग करने के बारे में कुछ पढ़ा है। मैंने कोशिश नहीं की है या यहां तक कि विवरणों को भी देखा है, लेकिन मुझे लगता है कि यह आगे की जांच के लायक है। क्या किसी और के पास इसका अनुभव है? – aldo
मैंने बॉक्स 2 डी के डेल्फी बंदरगाह का उपयोग किया और मैं इससे बहुत संतुष्ट हूं। कोशिश क्यों न करें? यदि आप रुचि रखते हैं तो इस [पेज] (http://labs.qt.nokia.com/2010/02/26/qt-box2d-is-easy/) पर जाएं। – menjaraz
Box2D दिलचस्प लग रहा है, लेकिन मुझे कहीं भी नहीं दिखाई देता है कि यह बहुप्रचारित है। – Joel