用Python+Qt+Java整一个百宝箱

用Python+Qt+Java整一个百宝箱

需求分析

课堂期末大作业,需要用Python做一个小项目。我自己有一些小的想法以及网上也有许多好玩、有用的通过Python实现的小工具,于是打算做一个百宝箱软件,把这些东西集成进来。

项目功能简介

用户登录

因为是个人使用所以底层就用字典实现的,如果用户不存在以及输入的密码有误都会有不同的提示
用Python+Qt+Java整一个百宝箱_第1张图片

主页面显示

负责把系统中所有的功能显示出来,提供给用户使用,还有一个退出功能,负责退出系统,系统的每一个功能都是一个用单独的py文件写的,可以独立运行,在这个功能一开始前会加载所有的功能模块,也就是说在整个系统的使用过程中,用户每点击一个按钮,不会有新的对象产生,永远用的是同一个对象,其实用的是饿汉式的单例模式
用Python+Qt+Java整一个百宝箱_第2张图片

人脸识别

可以使用本地拍照或者本地文件上传进行人脸对比并且获得结果分数,人脸识别就是用的百度提供的库,代码完全参考了百度的文档,然后在客户端,又完全参考了网上python使用OpenCV打开电脑摄像头的示例代码
用Python+Qt+Java整一个百宝箱_第3张图片

语音识别

可以通过录音或者使用本地音频文件识别,语音识别也是用的百度,代码完全参考了百度的文档,遇到了一个问题是需要把wav格式转换为pcm,看了百度提供的资料后有些不明白,又去网上找了资料看,还有有一点是必须使用多线程,因为如果不把录音单独放到一个线程中,整个程序就会阻塞,卡死
用Python+Qt+Java整一个百宝箱_第4张图片

图片转文字

本地文件上传,点击识别提取图片中的文字,图片提取文字还是用的百度,百度给了详细的代码示例
用Python+Qt+Java整一个百宝箱_第5张图片

翻译

翻译功能还是用的百度,百度提供了30几种语言互译,直接使用,在界面中使用了下拉框包含了这些语言,百度使用字母表示不同语言,代码里面使用了字典,把这些字母变成了中文显示在了下拉框中
用Python+Qt+Java整一个百宝箱_第6张图片
用Python+Qt+Java整一个百宝箱_第7张图片

浏览器

在程序内部浏览网页,浏览器这个功能直接在网上看到的代码拷贝下来封装一下就使用,他主要是用了qt的两个和网页显示有关的控件,调用了类提供出来的属性和方法
用Python+Qt+Java整一个百宝箱_第8张图片

查询天气

查询天气也方便,就是向服务器发起请求,然后接收服务器响应的消息(项目很多功能就是这样的),返回的消息是json,然后就显示在控件上,这里偷懒了没有解析json
用Python+Qt+Java整一个百宝箱_第9张图片

机器聊天

机器聊天也是这样的,看源码就知道了,然后他可以调用win10系统语音回答,用的是win32com这个库
用Python+Qt+Java整一个百宝箱_第10张图片

发送邮件

发送邮件这个可以支持给别人发送邮件,还是挺方便的,是老师上课讲过的例子,使用了smtplib这个库然后我加了个界面
用Python+Qt+Java整一个百宝箱_第11张图片

MyPython

模仿了一个idle,可以运行简单Python代码,我想的有两种方式,一个是把我在输入框中的内容转换成一个py文件,然后使用命令运行,把结果重定向到一个文件中,输出框显示文件内容,还有一种就是使用exec函数,解析输入框里面的字符串,后面也要用重定向,然后结果显示在输出框中,我用的第二种方式;关于彩色字体,其实就是当文件内容发生改变,就改变文本的字体颜色
用Python+Qt+Java整一个百宝箱_第12张图片

小爬虫

爬虫我做的太简单,就是一个requests的简单使用
用Python+Qt+Java整一个百宝箱_第13张图片

隐私管家

文件加密这个功能,有两种方式,一个是把一个文件读入到内存中,然后使用wordcloud库也生成一个图片,读入内存中,我在其中加了一段标志位,然后把他们合并,词云的二进制放在前面,所以看起来是一个图片,然后解密程序使用字符串的split分割,把标志位后面的又提取出来;第二种就是把加密的文件在代码中打包成zip,然后放一个词云在它前面,通过程序合并后,一般人看到的是一个图片,只需要改后缀他就可以变成zip,然后解压就是加密前的文件
用Python+Qt+Java整一个百宝箱_第14张图片用Python+Qt+Java整一个百宝箱_第15张图片

Bean代码生成器

把一个数据库中的一个表变成一个pojo会写许多代码,我想交给程序去做,只需写出包名类名和字段然后它可以自动生成, JavaBean代码生成器这个功能,界面其实只是修改配置文件,核心代码是用java写出来的,主要是用freemarker+解析json制作的,可以做到只写最主要代码,然后生成全部完整代码。(如果对这个感兴趣,请看我的具体博客,现在推出了更强大的代码生成器)
用Python+Qt+Java整一个百宝箱_第16张图片

游戏加速器

这个功能有点灰色哦,场景是:我想玩玩谷歌地球,我想快速clone GitHub的项目,我想用pip install但不使用国内镜像。。。想必你应该明白我的加速器功能了吧,郑重声明:请科学上网!
用Python+Qt+Java整一个百宝箱_第17张图片
用Python+Qt+Java整一个百宝箱_第18张图片

人机五子棋

人机五子棋,有存档读档,悔棋,胜负判断,机器下棋,纯java写的,原理主要是字符串操作,灵感是老师上课讲字符串反转通过拼接的方式,这个灵感贯穿了我的整个核心代码,然后使用jpype这个库调用我的Java代码,没有写界面,就在命令行运行,想看思路的可以看我之前的博客,有关于五子棋算法实现的
用Python+Qt+Java整一个百宝箱_第19张图片

项目目录结构

项目目录结构示意图
用Python+Qt+Java整一个百宝箱_第20张图片
  • myCode:里面是项目的源代码以及jar和exe和一些配置文件
  • out:项目的输出文件存放的位置,可以定期整理一下
  • src:存放了图片资源
  • ui:存放的与界面代码有关的资源
  • 每个py文件都是可以独立运行的,如果体验整个项目从Login.py开始

环境要求

  • Python3.7
  • JRE(有些功能是java写的,如果不使用这些功能也可以不用JRE)
  • Qt官方文档(主要是有些东西网上也不好找,还是需要看官方文档,虽然是全英文但是可以翻译啊)
  • 大量Python第三方库(请根据源代码对应安装)
  • windows系统

源码获取

扫描二维码加微信,一键三连加关注。。。。算了,太麻烦了,自己拿去吧!用Python+Qt+Java整一个百宝箱_第21张图片

结语

我的项目中大量的使用了百度AI的东西,有些是有次数限制的,大家在使用的时候请自己去网上申请改成你自己的身份,随着时间的推移,很有可能百度AI的有些功能就使用不了了这很正常,主要看代码逻辑思路吧。另外,很多功能的实现都是站在巨人的肩膀上,离不开老师、室友、网友的帮助,感谢他们!

你可能感兴趣的:(Python,Java,QT之路,python,java,Qt)