python使用KDDockWidget

news2024/11/24 7:34:45

编译原理:KDDockWidget是一个C++库,通过shiboken转成python的绑定支持。针对特殊版本,需要在cmake文件中增加一些变量。

注:本次编译,Qt版本统一指定为6.4.2,库支持Qt>5.12或6.2.0以上版本

  • 下载仓库 GitHub - KDAB/KDDockWidgets: KDAB's Dock Widget Framework for Qt
  • 下载Qt和代码,安装时需要勾选编译环境
  • 安装需要的三方库
pip install \ --index-url=https://download.qt.io/official_releases/QtForPython/ \ --trusted-host download.qt.io \ shiboken6==6.4.2 pyside6==6.4.2 shiboken6_generator==6.4.2
  • 下载并替换LLVM,参考。 原因:如果是用vs2019编译,无法使用编译后的dll,而且最坑爹的是编译时即使报错完全不会终止。(结果会导致即便编译出dll文件,使用时会一直报找不到模块)

  • 下载地址

  • 设置环境变量
set "LLVM_INSTALL_DIR=C:\Program Files\LLVM"
  • 修改shiboken6_generator的libclang.dll文件,把shiboken6_generator的libclang.dll文件,替换为vs2019下载得libclang.dll
  • 修改CMakeLists.txt文件
# 设置编译qt的位置(cmake find_package qt就是通过这里的路径查找的)
set(CMAKE_PREFIX_PATH "D:/software/qt/6.4.2/msvc2019_64")

# 设置python.exe位置(项目一般是.venv/Scripts下)
set(PYTHON_EXECUTABLE "G:/Source/LauncherDemo/.venv/Scripts")

# 配置绑定到的位置(项目一般是.vevn)
set(KDDockWidgets_PYTHON_BINDINGS_INSTALL_PREFIX "G:/Source/LauncherDemo/.venv")

# 找到option(${PROJECT_NAME}_QT6 "Build against Qt 6" OFF),改为ON
option(${PROJECT_NAME}_QT6 "Build against Qt 6" ON)
  • 指定python版本,修改python/CMakeLists.txt文件
# 30行修改为3.11(之前是3.7,这里如果不改,就会找到一个本机3.7版本以上的最小版本python
# 不知道为啥上面的PYTHON_EXECUTABLE不生效)
find_package(Python3 3.11 REQUIRED COMPONENTS Interpreter Development)
  • 调用cmake生成预安装文件
cmake -DKDDockWidgets_PYTHON_BINDINGS=True -DCMAKE_BUILD_TYPE=Release . --config Release
  • 编译 & 安装(安装到c盘,并且安装bindings到python包中)
cmake --build . --target install --config Release

备注:还不支持python qml,Is there a way to use DockWidgetQuick from Python? · Issue #290 · KDAB/KDDockWidgets · GitHub

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/457081.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决npm安装慢卡顿reify:ajv: timing reifyNode问题、报错require() of ES Module

网上方法众多,但是都没有具体说明原因和具体解决办法 镜像优先推荐:cnpm 和 taobao 文章目录: 第一个错:Error [ERR_REQUIRE_ESM]: require() of ES Module 1.来源 2.错误显示 3.问题解决 第二个错: 卡顿在reify:…

(原创)Flutter基础入门:手把手教你搭建Flutter混合项目

前言 Flutter是Google开源的构建用户界面(UI)工具包 支持在不同平台构建一致的ui效果 但在实际业务中,一般不会整个APP都用纯Flutter开发 尤其一些老的项目,会采用接入Flutter的方式来混合开发 那么今天就主要讲一下如何搭建一个…

0424作业

实现串口收发字符/字符串 uart4.c #include "uart4.h"void hal_uart_init() {//rcc初始化//使能CPIOB组控制器RCC->MP_AHB4ENSETR | (0x1 << 1);//使能CPIOG组控制器RCC->MP_AHB4ENSETR | (0x1 << 6);//使能UART4控制器RCC->MP_APB1ENSETR | …

Linux网路服务之PXE网络批量装机和Kickstart全自动化安装

文章目录 一 、PXE网络批量装机的简介和相关知识1.1 什么是PXE1.2搭建PXE 远程安装服务器1.3 PXE装机的过程描述 二、PXE批量安装的具体操作过程2.1安装并启用 TFTP 服务2.2安装并启用 DHCP 服务2.3准备 Linux 内核、初始化镜像文件2.4准备 PXE 引导程序2.5安装FTP服务&#xf…

Android分屏流程分析

本文基于Android 11。 SystemUI模块中的Divider管理着所有关于分屏的对象&#xff1a; DividerView&#xff08;分屏分割线&#xff0c;分屏显示界面&#xff09;SplitScreenTaskOrganizer&#xff08;分屏Task组织者&#xff0c;分屏逻辑&#xff09; 这里重点关注分屏逻辑…

有道CEO周枫:当我们谈论大模型时,应该关注哪些新能力?

作者&#xff1a;周枫 基于大语言模型技术的ChatGPT推出已经有4个月了&#xff0c;更多同类产品还在快速出现。比如&#xff0c;前天谷歌更新了Bard&#xff0c;将辅助编程能力支持的语言数量扩展到20种。 然而&#xff0c;对大模型技术的重要性也出现了质疑&#xff0c;前段…

开发框架之Furion

目录 概述 框架特点 功能模块 支持平台 运行环境 数据库 应用部署 Nuget框架扩展包 Nuget框架脚手架 FurionEFCore脚手架 FurionEFCore脚手架安装命令 FurionSqlSugar脚手架 FurionSqlSugar脚手架安装命令 使用脚手架 脚手架更新 概述 Furion是一个免费开源的.Ne…

【AI帮我写代码,上班摸鱼不是梦】调教ChatGPT过程全记录,让它帮我写程序!

最近发现磁盘空间严重不足&#xff0c;都弹窗提示我了&#xff1a; 想想看到底哪个文件夹占的空间比较大&#xff0c;好做针对性的删除和清理。奈何Windows系统没有查看文件夹大小的工具&#xff0c;只能鼠标放在某个文件夹上&#xff0c;等提示&#xff1a; AI时代都来临了&am…

PCL 点云变换

文章目录 一、原理简述1、旋转矩阵2、欧氏变换二、主要函数及代码实现1、主要函数2、完整代码3、效果实现参考文献:一、原理简述 两片点云的刚体变换包含旋转和平移,变换矩阵的含义如下: 1、旋转矩阵 绕 x x

Promise异步编程

目录 一、Promise的含义 二、基本用法 三、reject的用法 四、执行顺序 五、 项目中使用promise获取后端数据 六、catch的用法 七、finally的用法 八、Promise.all() 九、Promise.all()有一个是失败 十、Promise.race()全部是成功 十一、Promise.race()有一个是失败 一、…

Java——二叉树中和为某一值的路径(二)

题目链接 牛客网在线oj题——二叉树中和为某一值的路径&#xff08;二&#xff09; 题目描述 输入一颗二叉树的根节点root和一个整数expectNumber&#xff0c;找出二叉树中结点值的和为expectNumber的所有路径。 1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过…

图的相关知识总结

目录 图的概念图的存储结构邻接矩阵邻接表 图的遍历最小生成树Kruskal算法prim算法 最短路径问题单源最短路径--Dijkstra算法-单源最短路径--Bellman-Ford算法多源最短路径--Floyd-Warshall算法 图的概念 图是有顶点集合以及顶点间的关系组成的一种数据结构:G(V,E),其中顶点集…

JS-11A/224时间继电器 JOSEF约瑟 板前、板后接线

系列型号&#xff1a; JS-11A/11集成电路时间继电器&#xff1b;JS-11A/12集成电路时间继电器&#xff1b; JS-11A/13集成电路时间继电器&#xff1b;JS-11A/136集成电路时间继电器&#xff1b; JS-11A/137集成电路时间继电器&#xff1b;JS-11A/22集成电路时间继电器&#…

Java基础(十二)Java比较器

1 Java 比较器 我们知道基本数据类型的数据&#xff08;除boolean类型外&#xff09;需要比较大小的话&#xff0c;直接使用比较运算符即可&#xff0c;但是引用数据类型是不能直接使用比较运算符来比较大小的。那么&#xff0c;如何解决这个问题呢&#xff1f; 在Java中经常…

Jomalone(“独狼”)的Rootkit后门dll分析

从England.sys&#xff08;md5为B5F7DE342B1D661E57BCD14615CADEFA&#xff09;驱动文件中提取了4个dll文件&#xff0c;其中两个64位dll&#xff0c;两个32位dll&#xff0c;主要用于APC注入 样本的基本信息 文件名称: 0x3df60-0x15e00.dll 文件大小: 87.5 KB (89,600 字节) …

Kubeadm方式搭建K8s集群【1.23.0版本】

文章目录 一、初始化准备二、安装kubeadm三、初始化Master集群四、将新的Node节点加入集群五、部署CNI网络插件六、其他配置 Kubernetes1.24(包括1.24)之后不在兼容docker,如果有需要兼容docker的需求&#xff0c;则安装一个 cri-docker的插件&#xff0c;本文使用的是kuberne…

【SWAT水文模型】ArcSWAT输入准备

ArcSWAT输入准备 1 必需的ArcSWAT空间数据集1.1 数字高程模型&#xff08;DEM&#xff09;1.2 土地覆盖/土地利用类型1.3 土壤数据 2 可选的ArcSWAT空间数据集2.1 DEM Mask2.2 Streams2.3 User- Defined Watersheds 3 ArcSWAT表格和文本文件3.1 子流域出口位置表(dBase 表)3.2 …

【MCAL_Uart】-1.1-图文详解Uart串口协议

目录 1 什么是UART 2 UART的电平 3 UART的波特率 4 UART帧格式 4.1 start bit起始位 4.2 data bit数据位 4.3 parity bit奇偶校验位 4.4 stop bit停止位 5 什么是8-N-1 6 UART总线负载率计算 结尾 优质博文推荐阅读&#xff08;单击下方链接&#xff0c;即可跳转&am…

shell脚本基础之详解脚本的控制

详解脚本的控制 信号的处理Linux信号生成信号中断进程暂停进程 捕获信号捕获脚本退出修改或移除捕获 以后台模式运行脚本后台运行脚本运行多个后台脚本 在非控制台下运行脚本作业控制 查看作业重启停止的作业调整谦让度nice命令renice命令 定时运行作业用 at 命令来定时执行作业…

2023移动云大会即将召开,划重点来了

今年由 ChatGPT 引起的AI浪潮下&#xff0c;人们热议其背后的算力问题&#xff0c;毋庸置疑&#xff0c;算力已成为和水电同样重要的资源。作为开发者&#xff0c;如何了解云计算领域有哪些最新发展趋势&#xff1f; 4月25-26日&#xff0c;以“云擎未来&#xff0c;智信天下”…