如果我有以下代码:
import QtQuick 2.10
import QtQuick.Window 2.10
Window {
id: app
visible: true
width: 640
height: 480
property bool txt: false
Text {
text: app.txt
onTextChanged: { console.debug("Text changed") }
}
}
应用程序加载后,我的控制台中立即显示"文本更改",但是如果我手动将文本设置为类似
Text {
text: "Some text"
onTextChanged: { console.debug("Text changed") }
}
我不会在我的控制台中看到"文本已更改"显示,除非我实际上有一些东西在应用程序加载后更改了文本。
这是正常行为吗?有没有办法将变量用作文本,但不在应用程序加载后立即激活 onTextChanged?
是的,这是 qml 的正常行为,因为您的第一个文本属性是 ">(无(,当您给它多样性时,它会从 "变为app.txt
。如果您设置手动文本,在这种情况下,没有任何可更改的内容。