我知道我可以使用插槽onWidthChanged
和onHeightChanged
了解QML项目的宽度或高度是否发生了变化。这是通过做下面这样的事情。
进口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商业版。
作为一种变通方法,您可以创建一个绑定到width
和height
的属性,并将处理程序连接到该属性的更改信号:
property double dimensions: width * height
onDimensionsChanged: {
if(my_item.visible)
console.log("Dimension changed")
}
存在一个小风险,即在交换width
&height
,但在你的情况下,这可能是值得的
如注释中所述,默认情况下目前不存在此类信号。
您可以创建一个size
或rect
类型的属性,并通过以下方式对此作出反应:
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/变维信号示例