में स्प्लिट व्यू में गतिशील रूप से तत्व जोड़ें I QQ के साथ काम कर रहा हूं और मैं गतिशील रूप से स्प्लिट व्यू में तत्व जोड़ना चाहता हूं। onMouse क्लिक करें, लेकिन अब तक मुझे जवाब नहीं मिला।क्यूएमएल
जो मैंने अभी तक पाया है वह यह है कि SplitView
में इसकी डिफ़ॉल्ट संपत्ति इसके पहले बच्चे की data
संपत्ति पर सेट है। तो मुझे लगता है कि मुझे उस बच्चे को पैरेंट सेट के साथ नए गतिशील रूप से बनाए गए घटकों को आजमाएं और जोड़ना चाहिए (splitView1.children[0]
)। दुर्भाग्य से यह काम नहीं करता है। घटक लोड होने के बाद उस पहले बच्चे के बच्चों की संख्या अधिक है (स्प्लिटलाउट के घटक की तरह लगता है। पूर्ण घटना एक समारोह को कॉल करती है जो उन बच्चों को कहीं और ले जाती है)। इस प्रकार जोड़े गए बच्चे प्रस्तुत नहीं करते हैं (और किसी भी लेआउट संलग्न गुणों का जवाब नहीं देते हैं)।
import QtQuick 2.1
import QtQuick.Controls 1.0
import QtQuick.Layouts 1.0
ApplicationWindow {
width: 600
height: 400
SplitView {
anchors.fill: parent
Rectangle {
id: column
width: 200
Layout.minimumWidth: 100
Layout.maximumWidth: 300
color: "lightsteelblue"
}
SplitView {
id: splitView1
orientation: Qt.Vertical
Layout.fillWidth: true
Rectangle {
id: row1
height: 200
color: "lightblue"
Layout.minimumHeight: 1
}
// Rectangle { //I want to add Rectangle to splitView1 like this one, but dynamicly eg.onMouseClick
// color: "blue"
// }
}
}
MouseArea {
id: clickArea
anchors.fill: parent
onClicked: {
console.debug("clicked!")
console.debug("len: " + splitView1.__contents.length); // __contents is the SplitView's default property - an alias to the first child's data property
var newObject = Qt.createQmlObject('import QtQuick 2.1; Rectangle {color: "blue"}',
splitView1, "dynamicSnippet1"); //no effect
// var newObject = Qt.createQmlObject('import QtQuick 2.1; import QtQuick.Layouts 1.0; Rectangle {color: "blue"; width: 50; height: 50}',
// splitView1, "dynamicSnippet1"); //rectangle visible, but not in layout(?) - not resizeable
}
}
}
वहाँ किसी भी तरह से मैं गतिशील बनाया घटकों स्थिर जोड़ा लोगों के रूप में SplitView
में ठीक से प्रस्तुत कर सकते हैं है:
कृपया निम्नलिखित कोड का टुकड़ा देखते हैं?
यह एक बहुत ही खराब समाधान है क्योंकि आपको यह जानना है कि आपको पहले से कितनी वस्तुओं की आवश्यकता होगी, जो शायद ही कभी मामला है। – cmannett85