目录
下一章内容
PyQt5的配置
设置软件的快捷启动方式
1. 用于设计界面的程序
2. 将Qt Designer设计出来的ui文件转化为py文件
3. 可以把py文件打包成可执行的exe文件
4. 将ico图片放在qrc文件中,再将qrc文件转换成py文件,用于小工具的图标
快捷使用方法
设计界面
把设计的ui界面的ui文件转为py文件
main文件中的代码
下一章内容
用python从零开始做一个最简单的小说爬虫带GUI界面(2/3)_木木em哈哈的博客-CSDN博客前一章博客我们讲了怎么通过PyQt5来制作图形化界面,并且进行一些基本设置接下来两章我们主要讲核心爬虫代码的实现。 https://blog.csdn.net/mumuemhaha/article/details/132457770?spm=1001.2014.3001.5501
PyQt5的配置
配置其他的博主上有教程
建议安装以下包(最好在你原来的电脑环境也就是你电脑的cmd中输入以下命令,不要在pycharm创建的虚拟环境下创建,防止项目删除后软件打不开)
1 2 3 4 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5-tools pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple paramiko pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller
当然在pycharm中也要安装一遍
之后在设置中
选择工具->外部工具->加号
设置软件的快捷启动方式
然后依次新建如下内容
1. 用于设计界面的程序
1 2 3 4 名称:Qt Designer 工具设置 程序:C:\Users\你的用户名\AppData\Local\Programs\Python\你的python版本\Lib\site-packages\qt5_applications\Qt\bin\designer.exe 工作目录:$FileDir$
2. 将Qt Designer设计出来的ui文件转化为py文件
1 2 3 4 5 名称:PyUIC 工具设置: 程序:C:\Users\你的用户名\AppData\Local\Programs\Python\你的python版本\Scripts\pyuic5.exe 实参:$FileName$ -o $FileNameWithoutExtension$.py 工具目录:$FileDir$
3. 可以把py文件打包成可执行的exe文件
1 2 3 4 5 名称:PyInstall 工具设置: 程序:C:\Users\你的用户名\AppData\Local\Programs\Python\你的python版本\Scripts\pyinstaller.exe 实参: -F -w $FileNameWithoutExtension$.py 工作目录:$FileDir$
4. 将ico图片放在qrc文件中,再将qrc文件转换成py文件,用于小工具的图标
1 2 3 4 5 名称:pyrcc 工具设置: 程序:C:\Users\你的名字\AppData\Local\Programs\Python\你的Python3版本\Scripts\pyrcc5.exe 实参:$FileName$ -o $FileNameWithoutExtension$.py 工作目录:$FileDir$
写完后点击应用即可
快捷使用方法
然后你可以点击左三角的
工具->外部工具中快捷使用
设计界面
然后我们点击Qt Designer开始设计界面
然后开始创建一个窗口
进入后按照自己的喜好创建窗口
高级的使用方法不进行介绍
我用到的有
label:就是框框中的文字
line edit:用于获取输入的链接
Push Button:用于设置触发按钮,比如开始爬取或者关闭窗口
Text Browser:用于输出程序的结果(可不加,给用户看的)
点击控件后右边的框框会显示是哪一个控件
建议重新命名一边名称,不然会很难记
设计完成后就可以点击保存了,默认保存到你python项目的根目录
把设计的ui界面的ui文件转为py文件
由于我们设置了快捷方式
我们可以非常便捷右键ui文件然后执行PyUIC工具
之后你就可以在项目的文件目录下找到同名称的py文件
亦或者你可以执行命令
1 pyuic5 -o 原ui文件名称 输出的py文件名称
编译出来的文件大概长这样
文件的代码就是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow (object ): def setupUi (self, MainWindow ): MainWindow.setObjectName("MainWindow" ) MainWindow.resize(679 , 485 ) self .centralwidget = QtWidgets.QWidget(MainWindow) self .centralwidget.setObjectName("centralwidget" ) self .Button_run = QtWidgets.QPushButton(self .centralwidget) self .Button_run.setGeometry(QtCore.QRect(50 , 240 , 121 , 41 )) self .Button_run.setObjectName("Button_run" ) self .Button_close = QtWidgets.QPushButton(self .centralwidget) self .Button_close.setGeometry(QtCore.QRect(220 , 240 , 121 , 41 )) self .Button_close.setObjectName("Button_close" ) self .label_link = QtWidgets.QLabel(self .centralwidget) self .label_link.setGeometry(QtCore.QRect(60 , 110 , 71 , 21 )) self .label_link.setObjectName("label_link" ) self .line_link = QtWidgets.QLineEdit(self .centralwidget) self .line_link.setGeometry(QtCore.QRect(130 , 110 , 211 , 21 )) self .line_link.setObjectName("line_link" ) self .text_result = QtWidgets.QTextEdit(self .centralwidget) self .text_result.setGeometry(QtCore.QRect(370 , 110 , 291 , 321 )) self .text_result.setObjectName("text_result" ) MainWindow.setCentralWidget(self .centralwidget) self .menubar = QtWidgets.QMenuBar(MainWindow) self .menubar.setGeometry(QtCore.QRect(0 , 0 , 679 , 26 )) self .menubar.setObjectName("menubar" ) MainWindow.setMenuBar(self .menubar) self .statusbar = QtWidgets.QStatusBar(MainWindow) self .statusbar.setObjectName("statusbar" ) MainWindow.setStatusBar(self .statusbar) self .retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi (self, MainWindow ): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow" , "爬虫" )) self .Button_run.setText(_translate("MainWindow" , "开始爬取" )) self .Button_close.setText(_translate("MainWindow" , "关闭" )) self .label_link.setText(_translate("MainWindow" , "目录链接" ))
main文件中的代码
创建一个文件命名为main.py (用来存放我们的主程序)
1 2 3 4 5 6 import sysfrom PyQt5.QtWidgets import QApplication, QMainWindowfrom win import Ui_MainWindowimport time
而win是我刚刚窗口文件编译出来文件Ui_mainWindow是我的类名
(不要一股脑的抄,依葫芦画瓢就行)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class MyMainForm (QMainWindow, Ui_MainWindow): def __init__ (self, parent=None ): super (MyMainForm, self ).__init__(parent) self .setupUi(self ) if __name__ == "__main__" : app = QApplication(sys.argv) myWin = MyMainForm() myWin.show() sys.exit(app.exec_())
合在一起,然后运行,就可以看到出现了一个窗口
但是我们的按钮没有任何作用
接下来我们就要用函数绑定按下按钮的事件
刚刚的函数中的
1 2 3 def __init__ (self, parent=None ): super (MyMainForm, self ).__init__(parent) self .setupUi(self )
可以变为这个 (意思就是按下Button_close的按钮触发close函数,这个函数不用自己定义,按下Button_run按钮执行F_run函数,这个要我们自己定义了)
1 2 3 4 5 def __init__ (self, parent=None ): super (MyMainForm, self ).__init__(parent) self .setupUi(self ) self .Button_close.clicked.connect(self .close) self .Button_run.clicked.connect(self .F_run)
用python从零开始做一个最简单的小说爬虫带GUI界面(1/3)