如何解构QML中的rect对象以快速恢复窗口位置?
QML中用Rect类型批量恢复窗口位置的简洁方法
QML的rect是Qt封装的结构体类型,并非原生JS对象或数组,所以你尝试的JS解构赋值语法并不适用。以下是两种比逐个赋值更简洁的实现方式:
方法一:单行链式赋值
将四个属性的赋值合并为一行,代码更紧凑:
Component.onCompleted: { window.x = settings.coords.x; window.y = settings.coords.y; window.width = settings.coords.width; window.height = settings.coords.height; }
方法二:遍历属性列表赋值
借助JS数组遍历避免重复书写属性名,适合属性较多的场景:
Component.onCompleted: { ['x', 'y', 'width', 'height'].forEach(prop => window[prop] = settings.coords[prop]); }
另外补充窗口位置的保存逻辑,直接给settings.coords赋值窗口的rect属性即可:
Component.onDestruction: { settings.coords = window.rect; }
内容的提问来源于stack exchange,提问作者demberto
相关产品推荐
相关产品推荐

