Files
eUi/components/FancyButton.qml
T

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"
}
}