最近在用QML完成一个展示界面,类似于Photoshop那样的一个界面,用到了许多组件,在这里总结一下遇到的困难和解决方法,方便以后查阅。
想到哪儿就写到哪儿吧,博客的最后附上界面截图。
1、Windows窗口
(1)Window对象的visibility属性用来设置这个窗口的显示状态,可以取下列值:
Window.Windowed,窗口占屏幕的一部分,窗口管理系统支持同时显示多窗口时才有效。
Window.Minimized,最小化到任务栏上的一个图标。
Window.Maximized,最大化,占用任务栏之外的所有屏幕空间,标题栏依然显示。
Window.FullScreen,全屏显示,占用整个屏幕,标题栏隐藏。
Window.AutomaticVisibility,给Window一个默认的显示状态,它的实际值与平台实 现有关。
Window.Hidden,隐藏,窗口不可见,与visible属性的效果一样。
资料链接:https://blog.csdn.net/kanchuan1905/article/details/53762788
(2)flag属性
在QT帮助文档里面搜索Qt::WindowFlags可以看到许多窗口的属性,在此不一一列举了
本次界面需要自定义标题栏,并且有最小化按钮,所以主要使用下面的语句:
flags:Qt.FramelessWindowHint |Qt.WindowMinimizeButtonHint |Qt.Window
(3)如何拖动窗口
MouseArea {
property point clickPoint: "0,0"
anchors.fill: parent
acceptedButtons: Qt.LeftButton
onPressed: {
clickPoint = Qt.point(mouse.x, mouse.y)
}
onPositionChanged: {
var offset = Qt.point(mouse.x - clickPoint.x, mouse.y - clickPoint.y)
vparentWindow.setX(vparentWindow.x+offset.x);
vparentWindow.setY(vparentWindow.y+offset.y);
}
}
(4)如何保证界面在不同分辨率的显示器中都可以完美显示
在Window中定义两个变量如下:
<