Я хочу создать заголовок в стиле metro (что-то вроде "mahapps.metro") для приложения qml с липкими краями и пользовательскими кнопками и фоном, я уже создал нечто вроде этого:
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;
}
}
}
}
}
iУ меня есть несколько вопросов:
- как я могу реализовать липкие края в QML или QT?
- есть ли какая-нибудь библиотека, которая уже сделала это?
- могу ли я сделать собственную строку заголовка, соответствующую моим требованиям, с QTitleBar?
- существует ли какое-либо приложение с открытым исходным кодом с пользовательской строкой заголовка?
- Имеет ли дизайн материала какой-либо стиль для окон, по крайней мере, помогает мне в этом?