当前位置: 首页 > news >正文

超酷的爬虫可视化界面

大家好,本文主要介绍使用tkinter获取本地文件夹、设置文本、创建按钮下拉框和对界面进行布局。

1.导入tkinter库

导入tkinter的库,可以使用ttkbootstrap美化生成的界面

ttkbootstrap官网地址:https://ttkbootstrap.readthedocs.io/en/latest/zh/styleguide/frame/

import tkinter as tk
from ttkbootstrap.constants import *
from tkinter.filedialog import askdirectory
from ttkbootstrap import Frame, Button, Label, Text, Entry, Combobox

2.窗口属性

主要内容包括:

  • 根据设备屏幕的宽高自适应调整窗口的宽高

  • 设置窗口打开的位置

  • 设置窗口标题

  • 创建图片保存地址、输入关键词、下载数量的变量

  • 创建两个矩形区域包含组件

class BaiDuImageSpiderGUI:def __init__(self, win_width=1000, win_height=600):# 创建一个 tkinter 对象self.root = tk.Tk()# 设置窗口的宽度和高度self.win_width = win_widthself.win_height = win_height# 设备屏幕的宽度和高度screen_width = self.root.winfo_screenwidth()screen_height = self.root.winfo_screenheight()# 设置窗口打开的x,y位置x = int((screen_width - win_width) / 2)y = int((screen_height - win_height) / 2)# 窗口标题self.root.title("图片爬虫")self.root.geometry("%sx%s+%s+%s" % (win_width, win_height, x, y))# 设置窗口宽高固定# self.root.resizable(None,None)# 设置窗口图标# root.iconbitmap("./image/icon.ico")# 下载数量self.download_num = tk.StringVar()# 保存图片地址self.save_image_path = tk.StringVar()# 关键词内容self.key_word = tk.StringVar()# 第一个矩形区域self.frame_1 = Frame(self.root)self.frame_1.pack()# 第一个矩形区域self.frame_2 = Frame(self.root)self.frame_2.pack()

3.按钮和输入框

主要内容包括:

  • 在第一个矩形框中绘制组件

  • 用Label组件设置文本

  • 用Button和askdirectory组件打开文件夹

  • 用Entry组件绘制输入框

  • 用Button组件绘制按钮

  • 用Combobox组件绘制下拉框

  • 用pack方法设置组件位置

def create_frame_1(self):# 图片保存地址image_path_label = Label(self.frame_1, text="图片保存地址:")image_path_label.pack(side=LEFT, padx=5, pady=10)# 图片地址输入框image_path_entry = Entry(self.frame_1, bootstyle=SUCCESS, textvariable=self.save_image_path)image_path_entry.pack(side=LEFT, padx=5, pady=10)# 路径选择按钮image_path_button = Button(self.frame_1, text="路径选择", bootstyle=SUCCESS, command=self.save_path)image_path_button.pack(side=LEFT, padx=5, pady=10)# 关键字输入框key_word_label = Label(self.frame_1, text="图片内容:")key_word_label.pack(side=LEFT, padx=5, pady=10)key_word_entry = Entry(self.frame_1, bootstyle=INFO, textvariable=self.key_word)key_word_entry.pack(side=LEFT, padx=5, pady=10)# 下拉框描述combox_label = Label(self.frame_1, text="下载数量:")combox_label.pack(side=LEFT, padx=5, pady=10)# 下拉框绑定到tinker专属的变量上combox = Combobox(self.frame_1, bootstyle=PRIMARY, textvariable=self.download_num)# 设置下拉框的值、权限、默认值combox["value"] = (10, 20, 30, 40, 50)# combox["state"] = "readonly"combox.current(0)# 设置下拉框位置combox.pack(side=LEFT, padx=5, pady=10)# 按钮button = Button(self.frame_1, text="确定", bootstyle=PRIMARY, command=self.spider_main)button.pack(side=LEFT, padx=5, pady=10)

4.文本输入框Text

在第二个矩形框中用Text绘制文本输入框,将下载信息写入文本框:

def create_frame_2(self):# # 文本框self.download_input_text = Text(self.frame_2, width=self.win_width - 200, height=self.win_height - 200)self.download_input_text.pack(side=TOP, anchor=CENTER, padx=50, pady=10)def save_path(self):path_ = askdirectory()self.save_image_path.set(path_)def spider_main(self):passdef create_window(self):self.create_frame_1()self.create_frame_2()self.root.mainloop()

5.运行

实例化BaiDuImageSpiderGUI(),调用create_window()方法创建界面:

if __name__ == '__main__':app = BaiDuImageSpiderGUI()app.create_window()

6.打包成exe文件

为了方便使用和运行,使用pyinstaller工具打包为exe文件:

pyinstaller -F -w -i sspython.ico image_spiderGUI.py

http://www.lryc.cn/news/268178.html

相关文章:

  • 【kafka消息里会有乱序消费的情况吗?如果有,是怎么解决的?】
  • 【PID精讲12】基于MATLAB和Simulink的仿真教程
  • 手机无人直播:解放直播的新方式
  • ios 之 数据库、地理位置、应用内跳转、推送、制作静态库、CoreData
  • Django(三)
  • vscode括号颜色突然变成白色的了,怎么解决
  • 测试服务器带宽(ubuntu)
  • 【WPF】使用Behavior以及ValidationRule实现表单校验
  • ArcGIS渔网的多种用法
  • C++ 中使用 std::map 的一个示例
  • python虚拟环境及其在项目实践中的应用
  • 普中STM32-PZ6806L开发板(烧录方式)
  • 基于单片机设计的指纹锁(读取、录入、验证指纹)
  • HarmonyOS - 基础组件绘制
  • AR智慧校园三维主电子沙盘系统研究及应用
  • web前端项目-七彩夜空烟花【附源码】
  • 在k8s中将gitlab-runner的运行pod调度到指定节点
  • 1.解决父组件传数据给子组件太慢,导致子组件获取不到合适数据渲染出错问题2.vue中props传递异步数据,子组件用watch监听
  • SpringMVC之获取请求参数和域对象共享数据
  • IntelliJ IDEA Community(社区版)下载及安装自用版
  • 【C语言:编译、预处理详解】
  • 【宇宙猜想】AR文创入驻今日美术馆、北京天文馆等众多展馆,在AR互动中感受科技魅力!
  • 前端面试题html
  • AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
  • TCP:IP原理
  • Java 中 Lambda 表达式的使用
  • 【IO】IO模型与零拷贝
  • 鸿蒙 - arkTs:状态管理
  • YOLOv5-Lite 树莓派4B 15帧教程
  • 2014年第三届数学建模国际赛小美赛A题吹口哨解题全过程文档及程序