नीचे दिए गए कोड स्निपेट के साथ मैं 100,000 आयत के साथ एक दृश्य बना देता हूं।
प्रदर्शन ठीक है; दृश्य में कोई देरी नहीं होती है।QGraphicsScene, आइटम समन्वय प्रदर्शन को प्रभावित करते हैं?
QGraphicsScene * scene = new QGraphicsScene;
for (int y = -50000; y < 50000; y++) {
scene->addRect(0, y * 25, 40, 20);
}
...
view->setScene(scene);
और अब 2 टुकड़ा बेकार
for (int y = 0; y < 100000; y++) {
scene->addRect(0, y * 25, 40, 20);
}
दृश्य तत्वों दृश्य देरी माउस और महत्वपूर्ण घटनाओं पर प्रतिक्रिया करने के लिए, और के 1 छमाही के लिए दूसरे आधे के लिए यह ठीक हो रहा है?! ?
पूर्व दृश्य में sceneRect (x, y, w, h) = (0, -1250000, 40, 2499995) है।
बाद के दृश्य में sceneRect (x, y, w, h) = (0, 0, 40, 2499995) है।
मुझे नहीं पता कि sceneRect प्रदर्शन को प्रभावित क्यों करता है, क्योंकि बीएसपी सूचकांक संबंधित आइटम निर्देशांक पर आधारित है।
क्या मुझे कुछ याद आ रही है? मुझे प्रलेखन, प्लस क्यूटी डेमो 40000 Chips पर किसी भी जानकारी को नहीं मिला, उस विकल्प के कारण बताए बिना, (0, 0) के आसपास के तत्वों को भी वितरित करता है।
// Populate scene
int xx = 0;
int nitems = 0;
for (int i = -11000; i < 11000; i += 110) {
++xx;
int yy = 0;
for (int j = -7000; j < 7000; j += 70) {
++yy;
qreal x = (i + 11000)/22000.0;
qreal y = (j + 7000)/14000.0;
...
मेरा पहला अनुमान दृश्य रेक्ट का पुनर्मूल्यांकन है। क्या होता है यदि आप आइटम जोड़ने से पहले sceneRect सेट करते हैं? –
@ स्टीफन, परिणाम वही है। दृश्य दृश्य और स्थैतिक होने के बावजूद प्रतिक्रिया देने में देरी हो रही है। –
वाह, बहुत आश्चर्यजनक। मैंने कुछ परीक्षण चलाए, और ऐसा लगता है कि जब आप 1-50,000 बक्से देख रहे हों तो विजेट केवल तभी हो जाता है। 50.001-100.000 का अर्थ है, सब कुछ चिकनी है। और भी चिंताजनक, अगर मैं 'int (int y = -70000; y <30000; y ++)' के लिए रेंज करता हूं, तो स्क्रॉलिंग -70.000/-20.000 के लिए चिकनी है, -20.000/0 के लिए लगी है, फिर 0/30.000 के लिए फिर से चिकनी है ! – Fezvez