作为一个资深的自动化工程师,界面编程对我来说太熟悉不过了,但是当时用的都是工业界面编程软件,比如WINCC、组态王等等,在这里根本用不上,这个时候就开始了界面编程的探索之旅。
Python 有很多 GUI库,比如PyQt、Pyside、PySimpleGUI、Wax、Kivy、Toga、Tkinter等等等等,太多了,小白根本不知道该怎么选,怀着探索精神,第一个尝试了PyQt,PyQt的安装教程有很多,具体可描述为:点击菜单栏“File”——选择弹出的“Setting”选项——选择“Project”——选择弹出的“Project Interpreter”选项——点击右侧“加号”按钮可添加新的依赖包PyQt,到了这一步发现了一个问题,在Pycharm中输入PyQt点击搜索,出现了两个版本,一个是PyQt5 和PyQt6,怀着尝试的心态两个都安装了,感觉差距不大。
这个界面看起来和VB6.0和VB.NET的界面看起来差距也不大。
PyQt5的具体安装教程大家可以自行搜索,网上有很多很详细的,我就不在这里一一赘述。安装完PyQt5以后,新建一个界面,保存为.ui格式,但是无法直接查看界面的源码,还需要安装PyUic,将.ui格式转换成相应的.py,这个时候就能看到界面的程序源码了。
对于我的需求来说,界面只是一个简单的交互,三个按钮(PushButton)和两个消息提示(我用的是textBrowser),具体功能:是选择PDF文件(按钮1),点击按钮后,调用QFileDialog.getOpenFileName,选择PDF文件,并在textBrowser1中显示出来;执行PDF拆分(按钮2)将多页PDF拆分成单页PDF并逐页转换成PNG格式的照片;开始识别PNG(按钮3)将PNG格式的照片经过图像处理,识别结果并汇总生成.xlsx格式的结果;textBrowser2用于显示每一步的操作消息提示。
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
MainWindow.resize(800, 811)
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName