徐州云龙城乡建设局网站,虚拟主机管理系统,做网站开发面临的困难,免费网站建站w纯Qml实现Dock浮动、停靠功能 效果展示github地址:介绍环境Demo代码参数说明API说明 效果展示 Qml Dock效果演示 github地址:
https://github.com/longtwilight/QmlDock
介绍
这是一个使用纯qml实现的Dock组件#xff0c;它支持停靠、浮动、窗体分离、窗体独立、大小调整等… 纯Qml实现Dock浮动、停靠功能 效果展示github地址:介绍环境Demo代码参数说明API说明 效果展示 Qml Dock效果演示 github地址:
https://github.com/longtwilight/QmlDock
介绍
这是一个使用纯qml实现的Dock组件它支持停靠、浮动、窗体分离、窗体独立、大小调整等功能。开源它的目的是为了寻求更多的功能(如侧边栏)、更好的结构设计、更通用的应用场景以及更好的稳定性和易用性。欢迎批评和指正。
环境
Qt版本Qt6.2.4
编译器mingw、msvc、gcc均支持Demo代码
import QtQuick
import QtQml
import QtQuick.Controls
import QtQuick.Window
import ./Dock/ApplicationWindow {width: 1400height: 800visible: truetitle: qsTr(QmlDock Demo)MyDockHome{id: dockHomemyDockState: MyDockBase.DockState.Fillanchors.margins: 2Dock{id: dock1width: 600height: 550name: dock1dockHome: dockHomeclosable: falsedockTo: dock3direction: Dock.Direction.Center}Dock{id: dock2width: 300height: 600name: dock2dockHome: dockHomesplittable: falsedockTo: dock3direction: Dock.Direction.Left}Dock{id: dock3myDockState: MyDockBase.DockState.Fillname: dock3dockHome: dockHome}Dock{id: dock4width: 400height: 400myDockState: MyDockBase.DockState.Centername: dock4dockHome: dockHomeclosable: falsesplittable: false}}
}
参数说明
关键字说明取值nameDock窗体的标题字符串width / heightDock窗体宽度 / 高度整数dockHome为了实现边缘的停靠所有Dock窗体必须声明在DockHome类中且该字段需声明为DockHome的idDockHome的idclosableDock窗体是否允许关闭true / falsesplittableDock窗体是否允许从主窗体中独立出来成为单独窗体true / falsehideDock窗体默认是否显示相当于visible属性但visible与stacklayout视图有冲突所以在此基础上多封装了一层true / falsemyDockStateDock在DockHome中的默认状态与anchors属性相似但使用anchors属性会存在问题MyDockBase.DockState: Fill、Center、Top、Left、Right、Bottom、Float、TabdockTo窗体初始化时的停靠对象其他Dock窗体的iddirection窗体初始化时的停靠方向Dock.Direction: Center、Left、Top、Right、Bottom
API说明
方法名参数说明focusDock()null使Dock窗体获得焦点(标题栏变成金黄色渐变色)doDockTo(target,direction)target:待停靠的目标对象direction停靠方向用于js代码中动态停靠窗体releaseDock()null取消停靠splitToWindow()null将Dock窗体分离成为独立窗体returnToDockHome()null将分离出去的Dock独立窗体收回到DockHome中