Visual Studio Qt Qt-Advanced-Docking-System 新建停靠窗口+布局记录+布局载入

这篇具有很好参考价值的文章主要介绍了Visual Studio Qt Qt-Advanced-Docking-System 新建停靠窗口+布局记录+布局载入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

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

  1. 如何下载Qt-Advanced-Docking-System
  2. 如何在visual studio中载入Qt-Advanced-Docking-System插件
  3. 如何使用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

  1. 打开压缩包Qt-Advanced-Docking-System-master.zip(不管你是git下来还是从哪下载下来的)
  2. 找到Qt-Advanced-Docking-System-master\src目录,用qt-creator打开src.pro
  3. 通过Debug模式,和Release模式各自buid一遍
  4. 在Qt-Advanced-Docking-System-master\lib目录下,能够得到我们想要的:
    qtadvanceddockingd.dll qtadvanceddockingd.lib
    qtadvanceddocking.dll qtadvanceddocking.lib
    收好。

2.导入dll和lib

  1. 接下来在你喜欢的目录(我的话就在项目里新建一个bin\dock目录用来放置库和头文件)里,新建一个include目录和一个lib目录
  2. 将Qt-Advanced-Docking-System-master\src目录下的所有.h和.cpp文件放到刚刚建好的哪个include目录下
  3. 将Qt-Advanced-Docking-System-master\lib下刚刚生成的dll和lib文件放到刚刚建好的lib目录下
  4. 在你的项目里,分别在debug和release的属性管理器中,各新建一个新的属性页,我起名叫adsdockd.props和adsdock.props。
  5. 在adsdockd.props,adsdock.props中 包含目录给include,库目录给lib
  6. adsdockd.props中 链接器-输入-附加依赖项 加上qtadvanceddockingd.lib
  7. adsdock.props中 链接器-输入-附加依赖项 加上qtadvanceddocking.lib
  8. 在跑起来生成的debug目录下放qtadvanceddockingd.dll
  9. 在跑起来生成的release目录下放qtadvanceddocking.dll
  10. 在享用的地方,加上#include “DockManager.h”

三、如何使用Qt-Advanced-Docking-System

1.新建停靠窗口和窗口管理

.h文件中:

#include "DockManager.h"

类中:

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()); //把之前新建的窗口都放进去,在下拉菜单里可以控制是否展示

2.实现布局存储和载入

.h文件中:
#include “DockManager.h”
类中:
private slots:
//保存大数据展示布局
void saveVisualState();
//载入大数据展示布局
void restoreVisualState();
.cpp文件中:

	QMenu* setViewMenu = visualwidget->menuBar()->addMenu(tr("Display Settings")); //展示设定
	setViewMenu->addAction(tr("Save layout"), this, SLOT(saveVisualState()));//保存布局
	setViewMenu->addAction(tr("Restore layout"), this, SLOT(restoreVisualState()));//载入布局

void saveVisualState()
{
	QFile file(App_Path + "/cfg/VisualLayout.ini");
	if (file.open(QIODevice::WriteOnly))//不存在则创建,默认覆盖  | QIODevice::Append
	//if (file.open(QIODevice::WriteOnly | QIODevice::Append));//文末追加,不存在则创建
	{
		QDataStream out(&file);
		out << m_pDockManager->saveState();
		file.close();
	}
}

void restoreVisualState()
{
	QFile file(App_Path + "/cfg/VisualLayout.ini");
	if (file.open(QIODevice::ReadOnly))
	{
		QByteArray ba;
		QDataStream in(&file);
		in >> ba;
		file.close();
		if (m_pDockManager->restoreState(ba))
		{
			qDebug() << QString("载入布局界面成功");
		}
		else
		{
			qDebug() << QString("载入布局界面失败") << App_Path + "/cfg/VisualLayout.ini";
		}
	}
}

3.额外注意点

在mainwindow中或者dock中增加layout很可能不生效,需要加一个widget嵌套一下才行。

总结

差不多就这样了,基于上述描述,就可以正常使用了。文章来源地址https://www.toymoban.com/news/detail-491278.html

到了这里,关于Visual Studio Qt Qt-Advanced-Docking-System 新建停靠窗口+布局记录+布局载入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在visual studio里配置Qt插件并运行Qt工程

        Qt插件,也叫qt-vsaddin,它以*.vsix后缀名结尾。visual studio简称为VS,从visual studio 2010版本开始,VS支持Qt框架的开发,Qt以插件方式集成到VS里。这里简述在visual studio 2019里配置Qt 5.14.2插件,并配置Qt环境、编译和运行Qt工程。     下载VS2019,官网地址: https://visualstudio.mi

    2024年02月07日
    浏览(42)
  • Visual Studio如何使用Qt开发桌面软件?

      笔者熟悉的第一门编程语言是C#,当初本科毕业设计需要进行Qgis的二次开发,本想利用C#编程,但网上资料较少,多是利用Qt进行Qgis的二次开发,Qt是利用C++编程,当时利用Qt编译器进行编程,相比Visual Studio还是多有不习惯,虽然知道VS有Qt插件可以使用,但当初嫌麻烦,

    2024年02月13日
    浏览(41)
  • Qt Visual Studio添加Qt ui和编译注意事项

    工程中需要新的界面 VS中新建Qt的ui文件,然后需要生成对应的.cpp 和 .h 文件 生成对应的三个文件.ui, xxx. cpp, xxx.h 但是此时在QtWidgetsTestClass.h 里面,包含了#include “ui_QtWidgetsTestClass.h”。 会提示找不到该文件。该文件的生成,需要使用到Qt的uic.exe程序 1.通过配置ui_QtWidgetsTest

    2024年02月02日
    浏览(51)
  • Qt6 for Windows 环境搭建(Visual Studio)

    作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 在 Windows 中,如果想要开发 Qt 应用程序,可以选择多种方式: Qt Creator + MinGW 编译器 Qt Creator + MSVC 编译器 Visual Studio(自带 MSVC 编译器) 前两种方式之前我们已经介绍过了,主要利用 Qt Creator 作为 IDE,并配

    2024年02月10日
    浏览(40)
  • QT 6.3和Visual Studio 2022详细安装及配置教程

    一、安装QT 作者使用的操作系统为Win10 64位操作系统,操作系统版本号21H2,必须选择新于该操作系统才能安装成功。安装过程中确保持续联网,关闭不必要的其他软件。QT的安装过程可以参考文献1和2(文献链接附后)。 需要注意的是: (1)推荐使用清华源下载最新的在线安

    2024年02月04日
    浏览(44)
  • QT转型Visual Studio(qmake项目到cmake项目的移植)

    由于工作需要,同时也为了方便以后的集成升级,希望将之前用Qt creator qmake开发的项目移植到cmake项目中,并使用Visual Studio 进行后续开发,本文主要用以记录该过程中的常规步骤和遇到的特殊情况。 在一开始,为了降低开发难度以及快速完成业务开发,我们使用Qt Creator原生

    2024年02月09日
    浏览(34)
  • 在 Visual Studio 中编译 Qt 资源文件和 UI 文件教程

    Qt 是一个跨平台的 C++ 库,用于开发图形界面和应用程序。在 Qt 开发中,资源文件和 UI 文件是常见的两种资源,需要将它们编译成可用的形式,以便在应用程序中使用。本教程将指导您如何在 Visual Studio 中配置并编译 Qt 资源文件和 UI 文件。 安装 Qt 开发工具包:确保您已经

    2024年02月12日
    浏览(42)
  • 【Visual Studio】Qt 的实时绘图曲线功能,使用 C++ 语言,配合 Qt 开发串口通信界面

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 战斗背景:做了个串口接收界面,用来接收传输过来的信号。但是光用数字显示太单调,需要用图线显示出来。 战略目标:干掉它。 战术路线:Qt 绘图可以使用 Qt Charts,先了解

    2024年02月11日
    浏览(38)
  • 【VisualStudio】基于 Visual Studio 使用 C++ 语言开发 Qt 环境配置教程

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 先上一张效果图,具体步骤主要分为以下三步。 这一步不再赘述,注意一定要安装 C++ 语言。 可以参考这个教程 Visual Studio 2022安装与使用教程。 这一步也不再赘述,网上搜索教

    2024年02月15日
    浏览(50)
  • 【Visual Studio】使用 C++ 语言,配合 Qt,开发了一个串口通信界面

    知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 我要使用的功能比较简单,主要包含扫描串口、打开串口、发送数据、接收数据、暂停按钮、停止按钮,因此接下里将围绕这几个功能依次更新。 我的工程项目名字叫 “GUI”。

    2024年02月11日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包