135编辑器
好久没更新了,因为最近学校这边事情有点多。不过这两天还是花了点时间,陆陆续续将代码和这篇文章写出来。写这个例子其实是最近需要用到几次word转为pdf格式,然后突发奇想,然后尝试用python实现一下。我们先来看一下实现效果。
接下来来看一下怎么实现
安装配置
在 python做一个翻译小软件 这篇文章中,界面我们用的是tk模块。但本例子用的是pyqt5这个模块,因为个人这个做出来的界面会比tk模块漂亮。然后界面是使用Qt Designer来布局的。这个我们通过托拽来布局成我们想要的,然后就可以自动生成代码,很方便。
我们首先通过以下代码安装pyqt5和Qt Designer
pip install pyqt5-tools
然后我们打开pycharm,进行QT Designer配置 这个tool是图形化界面的gui ,可以手动拖拽控件 生成.ui文件。
打开设置界面 File--setting--tool----external tools 然后点击加号
在这边我们如上红线这三个。
program:pyqt5-tools的路径,这个要配到到 designer.exe这个文件。这个文件要到你电脑python安装目录下的Lib\sitepackages\pyqt5_tools\Qt\bin这个目录去找
working directory:配置$ProjectFileDir$就行。
之后配pyUIc ,这个是用来将.ui文件转换为.py文件的。
program:你电脑的python路径
Arguments:
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
working directory:$ProjectFileDir$
然后大家右键 external tools点击Qt Designer就可以进行设计界面了,如下图,这是我设计好的布局,虽然很丑。
之后保存后会生成ui文件,我们将它放到pycharm中,右键 external tools点击pyUIc就可以将它转为py文件了。是不是很方便。
代码实现
首先看一下生成的ui_form这个类的代码,这个就是自动生成的代码
可以看出主要就是对位置,宽高的设置。对了,这个ui代码在生成后,我是有改过的,因为有些组件布局上没有对齐。
之后看event这个类,这个是主要对组件的事件处理。这个类继承了ui_form这个类,之后才能调用其中的组件。
这里看下pyqt5怎么实现选择文件或目录的对话框的。
可以看出,pyqt5帮我们封装好了,我们只要调用getOpenFileName和getExistingDirectory两个方法就行了。其中 getOpenFileName这个方法可以指定文件的类型,这里我们设置为doc和docx。os.getcwd()表示获得当前目录的路径。
因为我们有做了单文件转换和批量转换,这意味着我们选单文件是只能指定文件,批量的只能指定目录。所以我们会进行判断,然后调用上述两个方法
之后我们来看一下word转为pdf的代码,这个才是核心代码。这里用了win32com这个模块,请自行安装。
首先传入两个参数,就是用户选的word的路径和保存路径。然后去判断传入的word路径是目录还是文件,如果是目录,就要去循环判断里面是否有word文档,有的话就转为pdf,否则跳过。是文件的话就直接转化。
看下转化的代码,FileFormat是指定转为什么文件格式的参数。
这个signal方法是对事件的监听,也就是那些按钮,下拉框的点击,改变。
大概就讲这些吧。。。
打包为exe
这个在之前的文章有讲过,这里在说下。
首先需要安装 pyinstaller 模块。然后可以在任意目录建个文件夹(如桌面),将写好的python文件放进去。之后在cmd窗口中输入如下打包命令。
pyinstaller -F -p C:\Users\zhang\AppData\Local\Programs\Python\Python36\Lib main.py -w
记得程序入口文件必须在项目根目录,要不貌似无法正常找到项目需求的模块什么的。
最后,后台回复“wp”即可获得本文的所有代码文件,祝大家工作顺利。记得点在看哦!!
END
往期 精彩回顾python预测淘宝双十一销售额,看看数据的真实性python做一个翻译小软件python爬取知乎妹子图python爬取b站《爱情公寓5》弹幕python实现点阵字体长按关注 我就知道你“在看”