43 lines
1.1 KiB
QML
43 lines
1.1 KiB
QML
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"
|
|
}
|
|
}
|