मैं क्यूटी के लिए नया हूं, और मैंने qt-project.org और अन्य स्थानों पर जो पढ़ा है उससे; QtQuick दोनों आकर्षक और स्पर्श आधारित उपकरणों पर काम करने की क्षमता के कारण एक आकर्षक विकल्प की तरह लगता है। मेरी समस्या यह सी ++ के साथ अच्छी तरह से काम करने के लिए हो रही है।QtQuick, गतिशील छवियां और सी ++
मैंने "हैलो वर्ल्ड" के बाद अगले चरण के रूप में कॉनवे गेम ऑफ लाइफ का एक प्रकार लिखने का फैसला किया। मैं पूरी तरह से रहस्यमय हूं कि कैसे "बोर्ड" - एक [ऊंचाई] [चौड़ाई] [बाइट्स-प्रति-पिक्सेल] सरणी का दृश्य - दृश्य ग्राफ में एकीकृत किया गया है।
असल में, प्रक्रिया यह है कि "लाइफबोर्ड" अपने नियमों के माध्यम से पुनरावृत्त करता है और char */image को अपडेट करता है।
class Life {
public:
QImage getImage() {}
// Or
char* getPixels(int h, int w, QImage::Format_ARGB8888) {}
}
मैं कोई सुराग नहीं है, और ट्यूटोरियल से जूझने घंटे नहीं था:
:::QML
ApplicationWindow {
id: life_app_window
visible: true
title: qsTr("Life")
menuBar: MenuBar {
Menu {
title: qsTr("File")
MenuItem {
text: qsTr("Quit")
onTriggered: Qt.quit();
}
}
}
toolBar: ToolBar {
id: lifeToolBar;
ToolButton {
id: toolButtonQuit
text: qsTr("Quit")
onClicked: Qt.quit()
}
ToolButton {
id: toolButtonStop
text: qsTr("Stop")
enabled: false
//onClicked:
}
ToolButton {
id: toolButtonStart
text: qsTr("Start")
enabled: true
//onClicked: //Start life.
}
ToolButton {
id: toolButtonReset
text: qsTr("Stop")
// onClicked: //Reset life.
}
}
Flow {
id: flow1
anchors.fill: parent
//*****
// WHAT GOES HERE
//*****
}
statusBar: StatusBar {
enabled: false
Text {
// Get me from number of iterations
text: qsTr("Iterations.")
}
}
}
मैं इस तरह थोड़े एक एपीआई के साथ एक वर्ग से आते हैं करने के लिए छवि के लिए चाहते हैं: मैं इस सरल QML मिल गया है मदद। एक सी *+ में char * छवि को कैसे लिंक करता है ??? क्यूएमएल में ताकि क्यूएमएल "लाइफ" लूप को शुरू/बंद कर सके और ताकि "लाइफ" लूप और चार सरणी को अपडेट कर सके और क्यूएमएल को फिर से निकालने के लिए सूचित कर सके?
नोट: मैं जानकारी here के आधार पर उपवर्गीकरण QQuickImageProvider देखा है। इस दृष्टिकोण के साथ समस्या यह है कि मैं नहीं देख सकता कि कैसे स्क्रीन छवि पर C++ "ड्राइव" को जाने दें। मैं QML से C++ पर नियंत्रण पास करना चाहता हूं और बदली गई छवि के साथ प्रदर्शन को अपडेट करने के लिए C++ को QML बताएं। क्या इस दृष्टिकोण के साथ कोई समाधान है? या पूरी तरह से एक और दृष्टिकोण।
अपने सी ++ को देखे बिना बताना मुश्किल है। आप QListModel या QAbstractItemModel का उपयोग C++ से QML तक डेटा की एक सूची भेजने के लिए कर सकते हैं और उन्हें C++ से अपडेट करने में सक्षम हो सकते हैं। फिर क्यूएमएल में आप ग्रिड – koopajah
@koopajah के अपने गेम का प्रतिनिधित्व करने के लिए ग्रिड व्यू में छवि {} घटक का उपयोग करते हैं, मैं चाहता हूं कि छवि मैनिपिलेशन कोड निजी कार्यों के सेट में हो। मैं चाहता हूं कि सी ++ सिग्नल क्यूएमएल है कि एक अपडेट छवि तैयार है, और क्यूएमएल उस छवि को प्रदर्शित करता है। इसके अतिरिक्त क्यूएमएल लाइफ पुनरावृत्तियों को आरंभ/रोकने के लिए कॉल "स्टॉप", "स्टार्ट" और "रीसेट" स्लॉट कॉल करने में सक्षम होना चाहिए। – justinzane