QtAds(Qt-Advanced-Docking-System)高级停靠系统的使用教程


前言

最近在完成毕业设计时突发奇想,想在软件系统中运用类似于keil的可以把信息输出,文件树等控件摆放到自己想要的位置,在网上找了很多资料最终看到了github上的一个成熟的项目QtAds,在这里简单的介绍一下这个项目。
在这里插入图片描述


一、QtAds是什么?

根据QtAdsGitHub仓库中的介绍,Qt Advanced Docking System(Qt-ADS)是一个用于 Qt 应用程序的高级停靠系统。兼容Windows、macOS、Linux系统,支持Qt5和Qt6,可以用C++、Python进行编译开发。它允许开发者在应用程序中创建高度可定制和复杂的用户界面,可以自己选择组件的位置,就是类似于keil中可以把文件目录放到右边,信息输出放到上面这样。

在这里插入图片描述
在这里插入图片描述

二、使用步骤

1、下载

可以选择克隆QtAds仓库下载源码或者直接通过pip下载库
将源码克隆至本地,同样的也可以去仓库中直接下载源码的压缩包

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

也可以选择直接在我的资源库QtAds(Qt-Advanced-Docking-System)高级停靠系统中下载,不过这样可能不是最新的版本。
另外,QtAds也可以用于PyQt5Pyside6
注意:PyQt5和Pyside6不要同时安装在同一环境下,两者之间存在兼容性问题,可能会导致运行时报错
PyQt5版本的QtAds可以通过下面的命令安装:

pip install PyQtAds

Pyside6版本的QtAds可以通过下面的命令安装:

pip install PySide6-QtAds

安装后可以直接使用import调用

2、代码框架

因为QtAds原版是以C++编写的,Python是移植过去的,所以我们打开下载的官方例程文件夹可以看到整个项目的系统框架,
可以找到README文件了解如何使用,下面是整个文件夹的框架。
在这里插入图片描述
其中demo是官方提供的一个完整的示例,doc中包含着各种图片,examples里则包含各种用户功能的范例,可以在这些范例的基础上进行更改,src中存放着ads的模块功能代码。

在源码的文件夹中,选择ads.pro(即Qt工程文件)打开后需要重新选择项目的配置,选择本地的编译环境就行,点击Configure Project按钮,注意:如果要编译运行需要打开ads.pro的工程文件才能正确运行,因为模块功能代码存放在src文件夹中,也可以在项目中更改索引路径这里就不再详细描述了。
在这里插入图片描述
可以看到整个ads项目的结构,就如前面所说的一样,demo工程下分别有demo.pro(demo的Qt工程文件),ads.pri可以理解成一个类似于makefile的文件,用于配置Qt库头文件等,Headers存放着所需要的头文件,Sources文件夹中存放着项目驱动的源码,Forms则存放ui文件也就是显示的界面,Resources文件夹中则包含着项目所需的各种资源,如图片、音频等。
在这里插入图片描述

3、使用

C++

需要电脑中带有Qt以及相关控件,打开ads.pro(Qt项目文件)点击编译后运行就会显示出系统的界面。
在这里插入图片描述
可以实现拖拽组件、布局保存、创建组件等操作。

Python

如果是Python环境下使用,建议创建一个虚拟环境,这样可以有效地隔离项目所需的依赖库,避免不同项目之间的冲突。我用的是Anaconda,相关安装教程可以自行搜索。
因为Python版本的只移植了示例部分,部分功能可能还未完全移植,这里建议直接使用C++的版本。
Python版本的例程代码在example文件夹下,打开main.py文件运行,有部分示例是没有Python版本的。在这里插入图片描述
直接从仓库下载的是使用PyQt5的,Pyside6版本需要去此处下载
在这里插入图片描述

运行时PyQt5的版本代码如果遇到下面的报错

DeprecationWarning: sipPyTypeDict() is deprecated, the extension module should use sipPyTypeDictRef() instead

可以参考[Question ]: DeprecationWarning: sipPyTypeDict() is deprecated.得知是sip版本更新后不兼容,把pyqt5-sip降级后就不会警告了

pip install pyqt5-sip==5.12.2

Pyside6的使用方法也是差不多的,这里就不再多阐述了。

参考

Qt-Advanced-Docking-System
Qt 项目文件Pri详解


总结

本人也只是初窥门道,对于在Python环境下如何监控组件的关闭信号并作出响应的操作还不是非常清楚,希望各位大佬能多加指点。感谢大家的观看!

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值