Visual Studio Qt Qt-Advanced-Docking-System 新建停靠窗口

前言

最近在使用visual studio 2022和qt开发项目时,涉及到制作大数据可视化界面的工作。
为了完成这一功能,查询了现有的实现方案,最终选择使用:Qt-Advanced-Docking-System
作为布局方案的实现方式。
此时,就遇到几个问题:

如何下载Qt-Advanced-Docking-System
如何在visual studio中载入Qt-Advanced-Docking-System插件
如何使用Qt-Advanced-Docking-System
接下来将根据这几个问题,完成本文叙述。

一、如何下载Qt-Advanced-Docking-System

下载链接:github地址 https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System

二、如何在visual studio中载入Qt-Advanced-Docking-System插件

1.生成dll和lib
打开压缩包Qt-Advanced-Docking-System-master.zip(不管你是git下来还是从哪下载下来的)
找到Qt-Advanced-Docking-System-master\src目录,用qt-creator打开src.pro
通过Debug模式,和Release模式各自buid一遍
在Qt-Advanced-Docking-System-master\lib目录下,能够得到我们想要的:
qtadvanceddockingd.dll qtadvanceddockingd.lib
qtadvanceddocking.dll qtadvanceddocking.lib
收好。
2.导入dll和lib
接下来在你喜欢的目录(我的话就在项目里新建一个bin\dock目录用来放置库和头文件)里,新建一个include目录和一个lib目录
将Qt-Advanced-Docking-System-master\src目录下的所有.h和.cpp文件放到刚刚建好的哪个include目录下
将Qt-Advanced-Docking-System-master\lib下刚刚生成的dll和lib文件放到刚刚建好的lib目录下
在你的项目里,分别在debug和release的属性管理器中,各新建一个新的属性页,我起名叫adsdockd.props和adsdock.props。
在adsdockd.props,adsdock.props中 包含目录给include,库目录给lib
adsdockd.props中 链接器-输入-附加依赖项 加上qtadvanceddockingd.lib
adsdock.props中 链接器-输入-附加依赖项 加上qtadvanceddocking.lib
在跑起来生成的debug目录下放qtadvanceddockingd.dll
在跑起来生成的release目录下放qtadvanceddocking.dll
在享用的地方,加上#include “DockManager.h”
三、如何使用Qt-Advanced-Docking-System
1.新建停靠窗口和窗口管理
.h文件中:

#include “DockManager.h”
1
类中:

private:
ads::CDockManager* m_pDockManager = nullptr;
QMainWindow* visualwidget = nullptr;//用于放置大数据可视化的窗口
void initVisualWidget();//初始化dock窗口

.cpp文件中:

visualwidget = new QMainWindow(<放的新建的窗口指针>);
visualwidget->setWindowFlags(Qt::Widget);//修改窗口为Widget属性
m_pDockManager = new ads::CDockManager(visualwidget);

ads::CDockWidget* dock_1 = new ads::CDockWidget(tr("dock_1"), visualwidget);//窗口1
dock_1->setWidget(<你要放在悬浮窗口中的窗口>);
dock_1->setFeatures(ads::CDockWidget::AllDockWidgetFeatures);//可以停靠的位置
m_pDockManager->addDockWidget(ads::CenterDockWidgetArea, dock_1);

//以上可以多放几个
//...

QMenu * viewMenu = visualwidget->menuBar()->addMenu(tr("Display Window")); //展示窗口
viewMenu->addAction(dock_1->toggleViewAction()); //把之前新建的窗口都放进去,在下拉菜单里可以控制是否展示
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值