import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.Basic 2.15 Button { id: root property alias iconSource: btnIcon.source // 允许外部设置图标 property color defaultColor: "transparent" property color hoverColor: "gold" property bool isHovered: false // 记录鼠标是否悬停 width: 60 height: 60 background: Rectangle { color: root.isHovered ? root.hoverColor : root.defaultColor // ✅ 绑定状态 border.color: "transparent" border.width: 0 radius: 0 } contentItem: Image { id: btnIcon anchors.centerIn: parent width: 40 height: 40 fillMode: Image.PreserveAspectFit } // 鼠标悬停时的颜色变化 MouseArea { anchors.fill: parent hoverEnabled: true onEntered: root.isHovered = true // ✅ 修改 `isHovered` 触发背景更新 onExited: root.isHovered = false } // 设置默认样式 function toDefault() { root.defaultColor = "transparent" root.hoverColor = "gold" } }