当前位置: 首页 > news >正文

Qt扩展-Advanced-Docking 简介及配置

Advanced-Docking 简介及配置

  • 一、概述
  • 二、项目结构
  • 三、安装配置
  • 四、代码测试

一、概述

Advanced-Docking 是类似QDockWidget 功能的多窗口停靠功能的库。很像visual stdio 的 停靠功能,这个库对于停靠使用的比较完善。很多的软件都使用了这个框架。

项目源地址:

https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System

使用案例入下:

  • Qt Creator
    从4.12版本开始,Qt Creator在其Qt Designer 中使用了该框架。
    在这里插入图片描述
  • CETONI Elements
    CETONI Elements软件是一款全面的、基于插件的模块化实验室自动化软件,用于使用联合图形用户界面控制CETONI设备。该软件具有强大的脚本系统,可自动执行流程。这个软件也使用了这个视窗布局系统,使用户可以自由安排各种插件提供的所有视图和窗口。
    在这里插入图片描述

二、项目结构

demo 目录和 example 目录下都是 项目的使用例子,我们就是从里面去参考这些示例即可。

src 目录是源代码目录,这个目录最终生成的是一个动态库和静态库,我们可以改变里面的ads.qrc 或者里面的 stylesheets 文件,达到定制这个布局系统的外观显示情况。
在这里插入图片描述

三、安装配置

我们打开源码编译后的 lib 目录下的内容,看我们需要使用哪种库引入即可。

同时把 src 里面的头文件给 复制到新的文件夹下

在这里插入图片描述
在这里插入图片描述
在header 文件夹下包括如下的文件。
在这里插入图片描述

四、代码测试

在 .pro 文件中添加,引入库的功能

win32: LIBS += -L$$PWD/lib/ -lqtadvanceddockingINCLUDEPATH += $$PWD/header
DEPENDPATH += $$PWD/header

测试源码

  • main.cpp
#include "ADSUse.h"int main(int argc, char *argv[])
{QApplication a(argc, argv);qDebug()<< QResource::registerResource("D:/Programs_Projects/Qt/GraduationDesign/MindCheck/Rescourses.rcc");QApplication::setStyle(QStyleFactory::create("Fusion"));ADSUse w;w.show();return a.exec();
}
  • ADSUse.h
#ifndef ADSUSE_H
#define ADSUSE_H#include <QWidget>
#include <DockManager.h>
#include <DockWidget.h>
#include <QLabel>namespace Ui {
class ADSUse;
}class ADSUse : public QWidget
{Q_OBJECTpublic:explicit ADSUse(QWidget *parent = nullptr);~ADSUse();private:Ui::ADSUse *ui;// The main container for dockingads::CDockManager* m_DockManager;
};#endif // ADSUSE_H
  • ADSUse.cpp

#include "ADSUse.h"
#include "ui_ADSUse.h"ADSUse::ADSUse(QWidget *parent) :QWidget(parent),ui(new Ui::ADSUse)
{ui->setupUi(this);// Create the dock manager after the ui is setup. Because the// parent parameter is a QMainWindow the dock manager registers// itself as the central widget as such the ui must be set up first.m_DockManager = new ads::CDockManager(this);// Create example content label - this can be any application specific// widgetQLabel* l = new QLabel();l->setWordWrap(true);l->setAlignment(Qt::AlignTop | Qt::AlignLeft);l->setText("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. ");// Create a dock widget with the title Label 1 and set the created label// as the dock widget contentads::CDockWidget* DockWidget = new ads::CDockWidget("Label 1");DockWidget->setWidget(l);// Add the toggleViewAction of the dock widget to the menu to give// the user the possibility to show the dock widget if it has been closed//ui->menuView->addAction(DockWidget->toggleViewAction());// Add the dock widget to the top dock widget aream_DockManager->addDockWidget(ads::TopDockWidgetArea, DockWidget);
}ADSUse::~ADSUse()
{delete ui;
}
http://www.lryc.cn/news/185799.html

相关文章:

  • Decorator
  • 分布式文件系统HDFS(林子雨慕课课程)
  • CSS中:root伪类的使用
  • VulnHub JANGOW
  • OpenMesh 获取网格面片各个顶点
  • 【前端设计模式】之原型模式
  • 软件设计原则
  • 【面试HOT100】哈希双指针滑动窗口
  • Ubuntu20.04 配置 yolov5_ros 功能包记录
  • Flink的处理函数——processFunction
  • Linux系统中的ps命令详解及用法介绍
  • 机器学习笔记 - 基于pytorch、grad-cam的计算机视觉的高级可解释人工智能
  • Python 编程基础 | 第五章-类与对象 | 5.1、定义类
  • 合宙Air780e+luatos+腾讯云物联网平台完成设备通信与控制(属性上报+4G远程点灯)
  • c++系列之string的模拟实现
  • Spring的beanName生成器AnnotationBeanNameGenerator
  • FFmpeg 命令:从入门到精通 | ffmpeg 命令直播
  • A (1087) : DS单链表--类实现
  • 异常:找不到匹配的key exchange算法
  • Arcgis打开影像分析窗口没反应
  • Spring(JavaEE进阶系列1)
  • Flink状态管理与检查点机制
  • 【threejs】基本编程概念及海岛模型展示逻辑
  • python小技巧:创建单链表及删除元素
  • ADuM1250 ADuM1251 模块 I2C IIC总线2500V电磁隔离 接口保护
  • C# 把多个dll合成一个dll
  • scipy.sparse.coo_matrix.sum()关于axis的用法
  • C++类与对象(下)
  • SpringBoot——》引入Redis
  • C# newtonsoft序列化将long类型转化为字符串