自定义的标题栏按钮是由Rectangle来实现的,在Rectangle中需要4张图片,分别在鼠标进入按钮区、鼠标离开按钮区(正常状态下)、鼠标按下和鼠标释放时所加载的图片。下面是实现自定义按钮的代码(我把它放在了一个MaxButton.qml文件中):
Rectangle {
radius: 10 //设置圆角半径
property string normalPath //按钮正常和鼠标离开按钮区后的图片路径
property string enterPath //鼠标进入按钮区域时的图片路径
property string pressPath //鼠标按下时的图片路径
property string releasedPath //鼠标释放后的图片路径
signal buttonClick() //鼠标点击时发送此信号
Image {
id: background
anchors.fill: parent
source: normalPath
}
MouseArea { //处理鼠标事件
anchors.fill: parent
hoverEnabled: true //处理没有按下时的鼠标事件
onClicked: buttonClick() //点击按钮时发送buttonClick信号
onEntered: background.source = enterPath //鼠标进入按钮区
onPressed: background.source = pressPath //鼠标按下
onExited: b