qt5 python 教材_QT5和python3结合你想不到坑

使用Qt5+python3实现一个word和Excel操作的一个工具,新手入坑,坑死人不偿命。

c++操作word和Excel

作为一个接触c++只有一个月的新手人员,一直想写应用的小工具,验收一下学习成果,刚好赶着项目需要,最近在修改大量的交付文档,就萌发一个用c++编写工具的想法: 网上搜索确实有很多方法,看了下网上的资料,发现对于我们这种小西米看着头痛;

c++调Word是可以实现,但是没有一个很好的库或之类的什么都要自己写,而且实现一个小功能要写一个很长的代码,看着别人写好的都难受,所以果断放弃;

因为自己对python接触的早所以,所以萌发了用python来调Word,搜索python调word,太多资料了;而且代码简洁易懂,不用去关系word提供的原始api,直接在上层调用,爽的一比;

c++调python

网上代码很多,很快就用python写好对word等文件的操作的脚本,下面就是坑中坑,然后想写个图形界面封装一下,想想就用qt,正好电脑上有QT5的环境,由于第一次鬼知道我经历是什么:

环境搭建

电脑上python3,写好的脚本也是python3就没有管直接跟着网上资料进行配置吧https://www.e-learn.cn/content/python/1322577; 由于脚本放置的位置错误造成找不到模块;

由于出现了问题我决定用一个test.py文件来测试基本的qt调c++,修改了路径,文件也放的正确怎么也没有效果,我怀疑是电脑坏了,各种重启。网上搜了半天鬼知道什么原因;

还有一个小坑,就是python3的版本位数一定要和编译器的版本匹配,不让也要报错;

操作应用 由于我我写好的python文件是一个类,而且类中还有初始化,网上的资料都没有对类进行初始化;

这可以对python的类进行初始化并传入word地址参数;

我编写的c++调python3三个参数,三个参数涉及到中文等字符问题,最大的坑来了;

Qstring到string到char*,各种问题,界面收到的是Qstring需要转到char*才能传入python中

6. qtcreator也有坑,编译时候一定要清除后再编译,如果确认没问题建议你重启下电脑之类,把其他编译文件或qmake文件删除后重新编译;

7. 最坑的问题来了:

之前都是好的,过了几天死活运行不起,没办法用这个类去创建python对象。期间各种换环境,甚至把虚拟机都装上了。最后也没有找到原因,纠结几天也没有找到原因,最后不得已只有屈服,将原本python类在上层封装一个函数,c++中直接通过函数去调用;

多线程调python脚本 c++中我用循环去调python脚本执行word操作,但是返回结果始终存在一个或两个失败;没有管它,但这样的效率太低了,准备把循环替换成多线程提高效率。我选了qt中高级库

这个线程操作比较上层我选择了它,调用的会根据参数自己去匹配。比较方便

接下就是问题了来了,死活不行一调,程序就挂,还报出来一个GIL的库,恍然大悟,python全局解释性锁同一时间只允许一个线程操作python解释器。于是对着问题去网上一搜很快解决,需要解锁,要允许多线程操作python脚本;

终于完成了,可以调用了。把全局锁关闭后,发现之前不是出现的循环调用的时候返回错误的问题也一并解决了,就是因为GIL的问题,其实循环调用也是一样,c++调python本来就开线程去调用,所以一并解决哦了

总结环境搭建是一个坑,还有就是对很多东西不熟悉,而且我用的都是比较新的环境网上资料少的很,需要运气解决,不过最终我实现一个小工具能对Excel和word等文件使用qt去操作它,虽然现在只实现一键替换文件夹中所有文件名和文件内容的字符,但只要通了有需要还可以慢慢研究。。。。。python转c++这条路太长了,慢慢学习吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值