gpt4 book ai didi

qt - 动态更改标签文本 QML

转载 作者:行者123 更新时间:2023-12-04 12:51:38 31 4
gpt4 key购买 nike

这是用任何语言做的最愚蠢的事情,但我不知道如何在 QML 中做。

如何在 QML 中更改 Label 的文本值?我错过了什么..

我的代码如下:

Container {
objectName: "formContainer"
id: formContainer

property alias text1: labelTest.text

onCreationCompleted: {
Qt.labelTest = labelTest;
Qt.text1 = formContainer.text1;
}

Label {
id: labelTest
text: "test"
}

TextField {
id: textFieldPass
onFocusedChanged: {
if (focused) {
Qt.myFunction();
}
}
}

function myFunction(){
//Enter successfuly to the function
console.log("Qt.labelTest.text:" + Qt.labelTest.text); //Output: undefined
Qt.labelTest.text = "Y U NO change!"; //Does nothing
Qt.text1 = "Y U NO change!"; //Does nothing
}
}

我不确定为什么不起作用。即使使用别名属性,文本也拒绝更改。我将不胜感激。

感谢和问候。

最佳答案

您需要使用控件的 id.aliasname 访问别名。 & 如果在多个插槽中使用 myFunction,则通过在其根(即本例中为 Page)中声明它来使 myFunction 全局化:

Page {
function myFunction() {
formContainer.text1 = "Y U NO change!";
}
Container {
id: formContainer
property alias text1: labelTest.text
Label {
id: labelTest
text: "test"
}
TextField {
id: textFieldPass
onFocusedChanged: {
if (focused) {
myFunction();
}
}
}
}
}

或者如果它仅用于 TextField 控件,您可以将其设为本地:

Page {
Container {
id: formContainer
property alias text1: labelTest.text
Label {
id: labelTest
text: "test"
}
TextField {
id: textFieldPass
onFocusedChanged: {
if (focused) {
myFunction();
}
}
function myFunction() {
formContainer.text1 = "Y U NO change!";
}
}
}
}

希望这会有所帮助。

关于qt - 动态更改标签文本 QML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12982268/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com