您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:PyQt5 实现百度图片下载器GUI界面

51自学网 2022-02-21 10:44:52
  python
这篇教程PyQt5 实现百度图片下载器GUI界面写得很实用,希望能帮到您。

通过 Pyqt5 实现一个界面化的下载器,在通过网络请求实现各种类型的图片的下载。可以通过界面上输入不同图片的关键字从而实现下载图片并将下载好的图片保存到自定义的文件路径中。

在介绍代码块内容之前,先来看一下需要用到的三方的 python 库。

from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *import osfrom scripy_images import ScripyImages

那么剩下的两个操作库一个是 os 模块主要是用来做系统文件相关操作的,还有一个就是 scripy_images 模块是用来通过网络请求来获取和下载图片的。

接下来介绍 Pyqt5 相关的页面定义等函数的使用。同样的先在 Pyqt5 的窗口上面添加我们需要的需要的组件,最后通过将这些组件添加到布局里面,大概的实现过程就是遵循这个顺序来实现的。

  def init_ui(self):        self.setWindowTitle('百度图片提取应用')        grid = QGridLayout()        self.page_label = QLabel()        self.page_label.setText('设置爬取页数:')        self.page_line_text = QLineEdit()        self.page_line_text.setPlaceholderText('输入整数')        self.page_line_text.setValidator(QIntValidator(1, 99))        self.page_line_text.setFocus()        self.keyword_label = QLabel()        self.keyword_label.setText('设置图关键字:')        self.keyword_line_text = QLineEdit()        self.keyword_line_text.setValidator(QRegExpValidator(QRegExp('[/u4E00-/u9FA5]+')))        self.keyword_line_text.setMaxLength(6)        self.keyword_line_text.setPlaceholderText('输入汉字')        self.file_path = QLineEdit()        self.file_path.setPlaceholderText('自定义文件路径')        self.file_path.setReadOnly(True)        self.file_path_button = QPushButton()        self.file_path_button.setText('自定义路径')        self.file_path_button.clicked.connect(self.file_path_click)        self.request_button = QPushButton()        self.request_button.setText('快速开始抓取图片')        self.request_button.clicked.connect(self.download_image)        self.log_text = QTextEdit()        self.log_text.setPlaceholderText('抓取进度结果展示...')        self.log_text.setReadOnly(True)        self.log_text.setMaximumHeight(100)        self.version_msg_label = QLabel()        self.version_msg_label.setText('<font color=blue>公众号:[Python 集中营] 发布</font>')        self.version_msg_label.setAlignment(Qt.AlignCenter)        grid.addWidget(self.page_label, 0, 0, 1, 1)        grid.addWidget(self.page_line_text, 0, 1, 1, 2)        grid.addWidget(self.keyword_label, 1, 0, 1, 1)        grid.addWidget(self.keyword_line_text, 1, 1, 1, 2)        grid.addWidget(self.file_path, 2, 0, 1, 2)        grid.addWidget(self.file_path_button, 2, 2, 1, 1)        grid.addWidget(self.request_button, 3, 0, 1, 3)        grid.addWidget(self.log_text, 4, 0, 1, 3)        grid.addWidget(self.version_msg_label, 5, 0, 1, 3)        self.setLayout(grid)

再接着就是定义相应的槽函数,其中有两个槽函数的使用一个是实在定义文件的存储的路径时需要一个槽函数用来将获取文件路径。还有一个就是开始进行百度图片的下载过程,通过这个槽函数来调用下载模块的执行。

   def file_path_click(self):        self.cwd = os.getcwd()        directory = QFileDialog.getExistingDirectory(self, '选取文件夹', self.cwd)        print(directory)        self.file_path.setText(directory + '/')    def download_image(self):        check_param = False        self.log_text.setText("")        self.log_text.insertPlainText("-----开始必填项参数检查-----/n")        if self.page_line_text.text().strip() != '' and /                self.keyword_line_text.text().strip() != '' and /                self.file_path.text().strip() != '':            self.log_text.insertPlainText("---参数检查成功---/n")            check_param = True        else:            self.log_text.insertPlainText("---参数检查失败---/n")            self.log_text.insertPlainText("请填写必填项后继续.../n")            check_param = False        self.log_text.insertPlainText("-----结束必填项参数检查-----/n")        if check_param is True:            self.log_text.insertPlainText("-----开始下载百度图片-----/n")            self.log_text.insertPlainText("---请耐心等待---/n")            ScripyImages(page_num=self.page_line_text.text(),current=self.keyword_line_text.text(),file_path=self.file_path.text())            self.log_text.insertPlainText("-----结束下载百度图片-----/n")

接着就是调用主函数执行整个逻辑。

 if __name__ == '__main__':    app = QApplication(sys.argv)    baidu = baiduImage()    baidu.show()    sys.exit(app.exec_())

整个 Pyqt5 的调用执行过程就是这样的
使用Python的音乐播放器GUI的实现
Python机器学习之实现模糊照片人脸恢复清晰

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。