我使用C ++函数设置qml的属性(来自库,我看不到实现),使用此函数属性后 按钮按预期更改(我从c ++代码设置的值),但在文本上设置只是“我的名字是:”没有值。我的问题是,如何加入两个字符串 在QML javascript函数中,当一个是 qsTr()函数的结果,第二个是属性从C ++设置?
property string name: ""
function myFunction() {
myText.text = qsTr("My Name is: ") + name;
//myText.text = qsTr("My Name is: " + name);//another try
}
Text{
id: myText
text: ""
}
Button {
text: name
}
按钮:John Smith
文字:My Name is:
答案 0 :(得分:3)
问题不在于加入字符串,而是绑定。
当您执行myText.text = ...
name
时尚未设置。由于您正在执行命令式分配,因此如果name
更改,则无法更新。
您可以与Qt.binding()
保持绑定:
myText.text = Qt.binding(function() {return qsTr("My Name is: ") + name;});
或者,您可以在myText
中声明性地执行此操作:
Text {
id: myText
text: qsTr("My Name is: ") + name
}
此处提供更多信息:http://doc.qt.io/qt-5/qtqml-syntax-propertybinding.html
答案 1 :(得分:0)
您可以使用args
执行此操作 WITH nodedest AS
( SELECT p.node,
p.src
FROM nodelist p
WHERE p.node = {dest}
)
SELECT nodelist.node
FROM nodedest
INNER JOIN nodelist
ON nodelist.node = nodedest.src