我试图打开一个弹出窗口并传递一个参数,该参数将作为弹出窗口的一部分显示。在打开弹出窗口之前,我可以通过创建属性和更改属性来实现这一点,但我想知道我是否可以在不创建属性的情况下完成这一任务,并以某种方式将参数传递给弹出窗口?基本上可以在不创建属性的情况下完成这一任务:
import QtQuick 2.15
import QtQuick.Window 2.2
import QtQuick.Controls 2.15
Window {
id: window
visible: true
height: 400
width: 400
property var username: "Morbius"
Button {
text: "Click me"
onClicked: {
username = "Definitely not Morbius"
popup.open()
}
}
Popup {
id: popup
width: 220
height: 200
closePolicy: Popup.CloseOnPressOutside
Text {
id: name
text: "Hello, " + username
}
}
}
发布于 2022-06-10 20:29:47
好吧,你需要一种存储你传递的值的方法,所以属性是自然的选择。但是我会让这个属性成为弹出窗口的一部分,而不是父窗口。这样,您也可以在其他地方重用它。使用自定义的open()函数可以使它看起来更漂亮一些。
Window {
id: window
Button {
text: "Click me"
onClicked: {
popup.openMe("Definitely not Morbius")
}
}
Popup {
id: popup
property string username
function openMe(name) {
username = name;
open();
}
Text {
id: name
text: "Hello, " + username
}
}
}
https://stackoverflow.com/questions/72579349
复制相似问题