我正在嘗試打開一個彈出視窗并傳遞一個將作為彈出視窗的一部分顯示的引數。我可以通過創建一個屬性并在打開彈出視窗之前更改該屬性來做到這一點,但我想知道是否可以在不創建屬性并以某種方式將引數傳遞給彈出視窗的情況下完成此操作?基本上無需創建屬性即可完成此操作:
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
}
}
}
uj5u.com熱心網友回復:
好吧,您需要一種方法來存盤您傳入的值,因此屬性是自然的選擇。但我會讓該屬性成為彈出視窗的一部分,而不是父視窗。這樣你也可以在其他地方重復使用它。你可以使用自定義的 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://www.uj5u.com/yidong/489342.html
