首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以获取QQuickItem布局更改事件?

是否可以获取QQuickItem布局更改事件?
EN

Stack Overflow用户
提问于 2018-05-15 19:43:10
回答 1查看 593关注 0票数 1

是否有可能更改QQuickItem布局?

有没有办法在布局/大小( x、y、宽或高)改变时触发函数?

有一种方法可以连接到每个属性信号变化,但这不是正确的方法。

我已经尝试了windowChanged信号,但它不适用于此。

我试图做的是调用外部java函数,每次我的QQuickItem布局/大小(所有这些)改变时,提供x(全局),y(全局),宽度,高度。

编辑:我需要知道渲染完成后的几何图形。因此,我不能单独连接到每个属性。

EN

回答 1

Stack Overflow用户

发布于 2018-05-20 10:54:49

将每个属性连接到一个单独的函数,该函数检查与某些保存的变量相比较的“几何”,如果有不匹配的东西,发出一个新的信号

代码语言:javascript
复制
Item {
   id: myItem
   onXChanged: { myItem.checkGeometry() }
   onYChanged: { myItem.checkGeometry() }
   onWidthChanged: { myItem.checkGeometry() }
   /* etc etc */

   signal: geometryChanged(var _x, var _y, var _width, var _height)

   property var  oldGeometry: [ myItem.x, myItem.y, myItem.width, myItem.height]
   function checkGeometry() { 
     var geometryToCheck = [mapToGlobal(myItem.x), mapToGlobal(myItem.y), myItem.width, myItem.height];
     for (var i=0; i<oldGeometry.length; i++) {
          if (oldGeometry[i] !== geometryToCheck[i]) {
               myItem.geometryChanged(mapToGlobal(myItem.x), mapToGlobal(myItem.y), myItem.width, myItem.height);
               myItem.oldGeometry = geometryToCheck;
               break;
          }
     }
   } 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50349342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档