【学习笔记】QT/C++/Python软件编程全记录

之前的两篇,只是记录了软件开发的一些思路,软件的功能也并不完善,没有干货。这篇文章计划将软件编写的全流程做个记录,也将把源码贴上,最后会罗列一下自己遇到的坑,希望可以帮到大家。 


目录

1. 开发背景

 2.开发思路

3.软件功能详细说明

3.0 软件启动及登录

3.1 选取excel文件地址

3.2 外购件料号excel文件填写

 ​编辑

3.2.1 料号填写错误

3.2.2 料号重复

3.2.3 料号正确且不重复

3. 3 G2及BOM的填写

3.4 软件功能、帮助按钮及最终保存

3.4.1 软件功能及帮助按钮

 3.4.1 保存料号

4. 软件源码

4.1 方案框架:

4.2 登录窗口

 4.3 ※主窗口

4.3.1 主窗口构造

4.3.2 打开某个excel文件

4.3.3 清空重选按钮

4.3.4 生成料号按钮

 4.3.5 保存最终结果:

5. ※遇到的坑与解决

5.1 PyImport_ImportModule or PyObject_GetAttrString 返回NULL 

5.2 PyType_Slot *slots冲突问题

5.3 QString转为std::String中文显示为“???”

 5.4 PyBytes_AsString无法将结果转为string,返回Null

 5.5 PyImport_ImportModule无法重复调用,写入异常问题


1. 开发背景

公司开发新品时,如果需要采购其他公司生产的零部件,且该部件为第一次采购时,就需要手动完成一个外购件料号的登记流程。即需要填写三个Excle表格,分别是“外购件料号登记表”、“G2"登记表及“BOM登记清单”。这三个表格,用户手动填写比较费时间,于是开发一个软件,可以一次性完成三个表格的填写。

其中,外购件料号登记表为了防止其他同事的误编辑,设置了访问密码,打开后显示如下:

 表格内容如图:

而G2表格没有密码,每个项目都有独立的G2表格,内容如下:

BOM表格内容如图:

 需要研发部填写的只有“HSI料号”一栏,也就是料号表格中的料号。

2.开发思路

明确了填写需求,开始构思开发思路。

我的思路就是,通过QT编写用户操作界面,后台完成对excel文件的读写。

我构思的软件界面如下(关于V1.0及V2.0请参考前面两篇文章):

用户需要对应选择自己公盘下的excel文件地址,因为公盘使用one-drive上传,同一个excel文件,不同用户有不同的地址:某用户用户名\OneDrive...\公盘地址\xx.xlsx。

而需要填写在不同excel表格中的内容,用户在QT界面填写即可。最后填写完毕进行保存,下面对软件逻辑进行详细说明。

3.软件功能详细说明

3.0 软件启动及登录

因为外购件料号软件需要密码进行编辑,为了防止无权用户通过软件进行编辑,软件设置了登录密码,用户需要登录成功后才能进入软件主界面:

3.1 选取excel文件地址

 当用户点选excel文件地址时,设置一个文件格式筛选,方便用户的同时也可以防止用户误选错误的文件。

 而为了防止用户忘记选择,直接进行料号的生成等操作,我设置了在选取到excel地址前,阻止用户输入:

 当用户已经选取了正确地址后,如果不确定是否进行了这次操作,我对按钮设置了提示:

 会告诉用户,已经进行过选取操作了。

当然,这样就存在一种可能,用户选取了非对应的excel地址,如外购件料号地址选择了G2文件等,因此用户可以点击清空重选按钮,重新选择。

3.2 外购件料号excel文件填写

 

这里为了简化用户填写,将需要填写的分类通过下拉框进行选择,用户无需查阅手册即可填写。

填写完成,点击生成料号按钮获取填写的料号:

3.2.1 料号填写错误

 当用户填写规则不符合手册时,将无法生成料号:

3.2.2 料号重复

 因为只在第一次采购某种物料时才需要进行登记,那么就需要在用户登记时进行查重操作。如果物料号重复,告知用户,防止重复登记。

 

3.2.3 料号正确且不重复

料号正确且不重复时,在料号预览窗中预览最终结果: 

3. 3 G2及BOM的填写

G2文件的填写,只需要选择应用领域、单位、原产国及发货国即可,填写过程和料号无异。唯一需要注意的就是,需要在料号成功生成后,即预览窗口正确显示料号后才可完成最终保存。

写到这也想到了一个优化方向,只有在用户正确生成料后,才允许在G2信息生成部分进行操作

而BOM填写,只需将生成的料号保存在excel中即可,无需任何填写。

3.4 软件功能、帮助按钮及最终保存

3.4.1 软件功能及帮助按钮

这两个按钮,我直接设置了一个QMessageBox,用户点击跳出信息,很简单。

 3.4.1 保存料号

当用户成功生成料号后,点击保存料号按钮,软件后台会打开对应的三个excel文件进行读写保存的操作,完成后弹出保存结果成功的提示窗口。

4. 软件源码

4.1 方案框架:

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值