मैं Q12 पर आधारित सी ++ एप्लिकेशन बना रहा हूं।QML के भीतर जावास्क्रिप्ट कार्रवाई में देरी कैसे करें?
यह आसान बनाने के लिए:
// My JS file linked to the main QML window
[...]
function actionOnButtonClicked()
{
var x = 0;
var y = 0;
for(var i = 0; i < 3; i++)
{
createObject(x, y);
x = x + 10;
y = y + 10;
}
}
आप के रूप में:
अपने मुख्य QML फ़ाइल में, मैं एक बटन (आयत) JavaScript फ़ंक्शन (एक बाहरी जे एस फ़ाइल में परिभाषित) बुला जब क्लिक किया है देख सकते हैं, इस समारोह में, मैं n (= यहाँ 3) बार गतिशील बनाने के लिए एक और जे एस फ़ंक्शन को कॉल कई QML दृश्य में जोड़ने के लिए वस्तुओं:
function createObject(xPosition, yPosition)
{
component = Qt.createComponent("Symbol.qml");
component.createObject(windowApp, {"x": xPosition, "y": yPosition});
}
यह ठीक काम कर रहा है। लेकिन बनाई गई वस्तु (प्रतीक) (1sec चारों ओर।) एक अनुवाद एनीमेशन के साथ windowApp में प्रकट होता है, और मैं एक दूसरे को बनाने से पहले पूरा करने के लिए पहली वस्तु का एनीमेशन के लिए इंतजार करना चाहते हैं ...
हम के रूप में Q12 में setTimeOut() जावास्क्रिप्ट फ़ंक्शन का उपयोग नहीं कर सकता, मुझे आश्चर्य है कि मैं इसे कैसे प्राप्त कर सकता हूं। मैं नहीं देखता कि मैं क्यूएमएल टाइमर ऑब्जेक्ट या यहां तक कि पॉज़एनीमेशन का उपयोग कैसे कर सकता हूं ...
क्या कोई जानता है कि 2 क्यूएमएल जावास्क्रिप्ट ऑपरेशंस के बीच देरी कैसे जोड़नी है?
हाय, मदद के लिए धन्यवाद। वास्तव में मैं अंत में एक [scriptAction] (http://doc-snapshot.qt-project.org/4.8/qml-scriptaction.html) डालने से एनीमेशन को पूरा करने का इंतजार कर सकता था। हालांकि, एक प्रतीक के बाद मैं जिस फ़ंक्शन को कॉल करना चाहता हूं, वह प्रोग्राम रन के साथ भिन्न हो सकता है, और यह मेरे शुरुआती चरणों को तोड़ देगा (_actionOnButtonClicked() _ फ़ंक्शन में प्रदर्शन किया जाएगा)। मेरे कोड नमूने में नोट, मैंने सरलीकरण उद्देश्य के लिए उस फ़ंक्शन में कई ऑब्जेक्ट्स बनाने के लिए _for_ का उपयोग किया होगा, लेकिन यह फ़ंक्शन वास्तव में विभिन्न ऑब्जेक्ट सृजन के बीच कई संचालन करता है ... – Benoit