You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在QML项尺寸变化时获取统一通知?

解决方案

Qt 5.15版本的QML Item没有内置的统一尺寸变化信号,最简洁的实现方式是自定义绑定属性来统一监听,实现代码如下:

import QtQuick 2.12

Item {
    id: my_item
    // 自定义尺寸属性,自动和当前项的宽高绑定
    property size itemSize: Qt.size(width, height)

    onItemSizeChanged: {
        if (visible) {
            console.log("Dimension changed")
        }
    }
}

方案优势

  • 宽、高任意一项发生变化时都会触发回调,不需要分别监听两个信号
  • 若宽高同时修改,回调仅会触发一次,不会出现重复执行的问题
  • 无额外依赖,完全兼容Qt 5.15全系列版本

如果你后续升级到Qt 6及以上版本,可以直接使用Item内置的size属性,监听onSizeChanged信号即可,无需额外自定义属性。

内容的提问来源于stack exchange,提问作者TheWaterProgrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:36:07