首先声明,此方法在Mac下适用,在windows上拖拽缩放时闪烁严重,windows上还是得结合其系统特性来实现比较靠谱。
原来很简单,就是在窗口的四个顶点和四边放置8个Item,并在Item的MouseArea中实现鼠标样式的变换,然后根据鼠标位置的变换来控制窗口的大小。网上很多demo也是用这个原理实现的,但是在Mac效果拖拽时窗口大小处理的不对。
OlDragItem.qml
import QtQuick 2.9
import QtQuick.Controls 2.2
Item {
id: root
property alias containsMouse: mouseArea.containsMouse
signal posChange(int xOffset, int yOffset)
implicitWidth: 12
implicitHeight: 12
property int posType: Qt.ArrowCursor
readonly property int posLeftTop: Qt.SizeFDiagCursor
readonly property int posLeft: Qt.SizeHorCursor
readonly property int posLeftBottom: Qt.SizeBDiagCursor
readonly prop