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

python 调Qt C++ 写法配置和坑点

python 示例写法 和调c动态库一样

通过回调函数方式 将python函数注册到c++ 动态库中

from ctypes import *def DllCall(nParam, nFlag):print(nParam, nFlag)z2 = 0.6z3 = 0.4z4 = 0.0z5 = 0.3z6 = 0.5z7 = 0.8z8 = 0.3z9 = 0.9strData = str(z2) + ' ' + str(z3) + ' ' + str(z4) +  ' ' + str(z5) +  ' ' + str(z6) +  ' ' + str(z7)  \+ ' ' + str(z8) +  ' ' + str(z9)return strData.encode() dll = CDLL('./HLACCallDlg170.dll',winmode=0)
callbackFunc = CFUNCTYPE(c_char_p, c_int, c_int)(DllCall)
dll.HLACDialogRegisterCallBack(callbackFunc)

生成动态库

//头文件 
#pragma once#include "HLACCallDlg.h"
#include <QApplication>#ifdef __cplusplus
extern "C" {
#endifHLAC_CALL_DLG_EXPORT int HLACDialogRegisterCallBack(CallBackFunc pFunc);#ifdef __cplusplus
}
#endif//.cpp 文件
#include "../Include/HLACCall.h"int HLACDialogRegisterCallBack(CallBackFunc pFunc)
{int nArgc = 0;char** pArgv = NULL;QApplication a(nArgc, pArgv);CHLACCallDlg dlg;dlg.RegisterCallBack(pFunc);dlg.show();return a.exec();
}

配置重点
网上是说 需要配置QT_PLUGIN_PATH 环境变量

在这里插入图片描述
坑点:
网上方法是配置此环境变量,但配置后会导致其他软件找不到正确的插件位置
建议使用下面的方法设置临时环境变量

import osos.environ['QT_PLUGIN_PATH']= 'E:\\SoftWare\\Qt\\5.14.2\\msvc2017\\plugins'

否则python 无法调起qt插件

这样就调起来啦!!!!!!!
在这里插入图片描述

http://www.lryc.cn/news/502319.html

相关文章:

  • css设置透明的几种办法
  • 刷题日志【4】
  • 如何制作自己的字体文件.ttf
  • gradle在IDEA 中无法使用的启动守护线程的问题
  • Spring Boot 配置多数据源并手动配置事务
  • YashanDB 23.2 YAC 共享集群部署和使用自带YMP迁移工具进行数据迁移,效果很city
  • 【数学】矩阵的逆与伪逆 EEGLAB
  • 狐猬编程 C++ L3 第7课 字符串入门 元音字母
  • APP UI自动化测试的思路小结
  • 2412d,d的7月会议
  • ANOMALY BERT 解读
  • 定时/延时任务-Netty时间轮源码分析
  • React的一些主要优点是?
  • RabbitMQ 基本使用方法详解
  • [leetcode100] 101. 对称二叉树
  • Vue.createApp的对象参数
  • 短信验证码burp姿势
  • ubuntu WPS安装
  • 中粮凤凰里共有产权看房记
  • 学习笔记068——Hibernate框架介绍以及使用方法
  • Maven 安装配置(详细教程)
  • 虚幻开发中的MYPROJECTFORPLUG_API
  • 顺序栈及其实现过程
  • 内圆弧转子泵绘制工具开发
  • linux网络编程 | c | 多进程并发服务器实现
  • Vins_Fusion_gpu中source setup.bash
  • 怎么理解大模型推理时的Top_P参数?
  • hive+hadoop架构数仓使用问题记录
  • 前端的 Python 入门指南(三):数据类型对比 - 彻底的一切皆对象实现和包装对象异同
  • Axios结合Typescript 二次封装完整详细场景使用案例