在文本元素中使用变量作为文本会立即激活文本更改

  • 本文关键字:文本 激活 元素 变量 qt qml qt5
  • 更新时间 :
  • 英文 :


如果我有以下代码:

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。如果您设置手动文本,在这种情况下,没有任何可更改的内容。

最新更新