【发布时间】:2019-07-23 15:33:21
【问题描述】:
看问题How can I create a new window from within QML? 我们在那里看到我们可以通过这种方式创建一个新窗口:
main.qml
import QtQuick 2.3
import QtQuick.Controls 1.2
ApplicationWindow {
id: root
width: 200; height: 200
Button {
anchors.centerIn: parent
text: qsTr("Click me")
onClicked: {
var component = Qt.createComponent("Child.qml")
var window = component.createObject(root)
window.show()
}
}
}
Child.qml
import QtQuick 2.3
import QtQuick.Controls 1.2
ApplicationWindow {
id: root
width: 100; height: 100
Text {
anchors.centerIn: parent
text: qsTr("Hello World.")
}
}
但是这种方式似乎不可能将变量传递给 child.qml,然后在我们在这个新窗口上提交表单后,将它们放在 main.qml 上,或者有可能吗?我们该怎么做?
关于被转移到 Child.qml 的变量我想这样的事情会做:
var b = tabButton.createObject(tabbar, {tabId: tabId, trCtx: tabs[t], tabTitle: c.title,
"font.pixelSize": 14, "font.bold": globals.menu.fontBold,
"font.family": robotoRegular.name})
如果这没问题,那么唯一缺少的就是从 Child.qml 获取值。
【问题讨论】:
-
你说那么唯一缺少的就是从 Child.qml 中获取值,什么值?