QML: public 变量
QML: public variable
我有两个 QML 文件。
在 First.qml 中,我可以显示 Second.qml。在 Second.qml 我有 selectedParts 变量。
当我使 Second.qml 可见时,我想始终将 selectedParts 设置为值 1。只有在我加载时才有效
Second.qml 第一次。如果我使 Second.qml 不可见然后可见,则 selectedParts 值为 2。到底有没有
使 selectedParts 变量 public 并在我单击 myImage?
时始终设置其值
First.qml
Item {
Image {
id: myImage
MouseArea{
anchors.fill: parent
onClicked: {
second.visible = true
...
}
}
}
}
Second.qml
Item {
property int selectedParts: 1
Image {
id: myImage2
MouseArea{
anchors.fill: parent
onClicked: {
selectedParts = 2
...
}
}
}
}
QML public 变量?在 Defining QML types from C++ 中查找 MessageBoard。我们正在使用这种方法。您只需要创建 C++ MessageBoard 对象,将一些数据放入其中并通过提供给每个 QML 根对象的 QML 上下文引用它:
m_quickView.engine()->rootContext()->setContextProperty("myMsgBoard", MyQmlMsgBoard::instance());
在 QML 中:
Rectangle {
id: topRect
scale: myMsgBoard.scale // or anywhere in QML
// ....
}
当然,"message board" C++ 对象暴露给 QML 类似:
Q_PROPERTY(qreal scale READ scale CONSTANT);
我通过在 Second.qml 文件中添加后退按钮解决了我的问题。在这个按钮中,我放置了语句 selectedParts = 1。
我有两个 QML 文件。 在 First.qml 中,我可以显示 Second.qml。在 Second.qml 我有 selectedParts 变量。 当我使 Second.qml 可见时,我想始终将 selectedParts 设置为值 1。只有在我加载时才有效 Second.qml 第一次。如果我使 Second.qml 不可见然后可见,则 selectedParts 值为 2。到底有没有 使 selectedParts 变量 public 并在我单击 myImage?
时始终设置其值First.qml
Item {
Image {
id: myImage
MouseArea{
anchors.fill: parent
onClicked: {
second.visible = true
...
}
}
}
}
Second.qml
Item {
property int selectedParts: 1
Image {
id: myImage2
MouseArea{
anchors.fill: parent
onClicked: {
selectedParts = 2
...
}
}
}
}
QML public 变量?在 Defining QML types from C++ 中查找 MessageBoard。我们正在使用这种方法。您只需要创建 C++ MessageBoard 对象,将一些数据放入其中并通过提供给每个 QML 根对象的 QML 上下文引用它:
m_quickView.engine()->rootContext()->setContextProperty("myMsgBoard", MyQmlMsgBoard::instance());
在 QML 中:
Rectangle {
id: topRect
scale: myMsgBoard.scale // or anywhere in QML
// ....
}
当然,"message board" C++ 对象暴露给 QML 类似:
Q_PROPERTY(qreal scale READ scale CONSTANT);
我通过在 Second.qml 文件中添加后退按钮解决了我的问题。在这个按钮中,我放置了语句 selectedParts = 1。