我想为带有粘性边缘和自定义按钮和背景的qml应用程序创建metro风格的标题栏(类似于“mahapps.metro”的东西),我已经创建了这样的东西:
import QtQuick.Controls.Universal 2.12
ApplicationWindow{
id: window
width: Screen.width * 5/6
height: Screen.height * 5/6
flags:Qt.Window | Qt.CustomizeWindowHint
menuBar : Rectangle{
width: parent.width
height: 35
color: Universal.color(Universal.Emerald)
Row{
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
spacing: 5
layoutDirection: Qt.RightToLeft
CustomButton{
//close
}
CustomButton{
//maximize
}
CustomButton{
//minimize
}
}
MouseArea{
//deal with dragging
anchors.fill: parent
property variant clickPos: "1,1"
onPressed: {
if(window.visibility != 4 && window.visibility != 5)
clickPos = Qt.point(mouse.x,mouse.y)
}
onDoubleClicked: {
var item = window.Maximized;
if(window.visibility != 4 && window.visibility != 5){
window.showMaximized()
}
else{
window.showNormal()
}
}
onPositionChanged: {
if(window.visibility != 4 && window.visibility != 5){
var delta = Qt.point(mouse.x-clickPos.x, mouse.y-clickPos.y)
window.x += delta.x;
window.y += delta.y;
}
}
}
}
}
我有一些问题:
您有 2 个选择来解决这个问题: