我知道我可以使用插槽onWidthChanged和onHeightChanged. 這是通過執行以下操作。
匯入 QtQuick 2.12
Item {
id: my_item
onWidthChanged: {
if (my_item.visible) {
console.log("Dimension chnaged")
}
}
onHeightChanged: {
if (my_item.visible) {
console.log("Dimension chnaged")
}
}
}
以上效果很好。但我只想知道我的 QML 專案的維度是否發生了變化。當寬度或高度改變時,我只需要回呼。我不需要兩者的回呼。
是否有 QML 信號僅用于監聽維度變化?
我使用的是Qt 5.15.7商業版。
uj5u.com熱心網友回復:
作為一種解決方法,您可以創建一個系結到width和的屬性,height并將處理程式連接到該屬性的更改信號:
property double dimensions: width * height
onDimensionsChanged: {
if(my_item.visible)
console.log("Dimension changed")
}
存在一個小風險,即交換width&時數字不會改變height,但這在您的情況下可能是值得的
uj5u.com熱心網友回復:
如評論中所述,默認情況下當前不存在此類信號。
您可以創建一個sizeorrect型別屬性并對其做出反應:
property size dimensions: Qt.size(width, height)
onDimensionsChanged: console.log("Dimension changed")
這是一個為發射器供電的 WASM 示例:
https://www.canonic.com/#https://playground.canonic.com/525f6691-fe05-4824-a7f1-574bb8cabd8b/dimension-changed-signal-example
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/378521.html
