GUI项目实战【一】:requests+tkinter+pyinstaller制作下载图片的可视化exe工具【文末源码地址】 |
您所在的位置:网站首页 › 可视化gui › GUI项目实战【一】:requests+tkinter+pyinstaller制作下载图片的可视化exe工具【文末源码地址】 |
本文可以学习到以下内容: 使用tkinter的Entry功能获取本地文件夹 使用tkinter的Label功能设置文本 使用tkinter的Button功能创建一个按钮 使用tkinter的Combox功能创建一个下拉框 使用tkinter的pack方法对界面进行布局【路径选择】按钮选择图片保存的地址 【图片内容】输入框中输入需要下载的图片关键字 【下载数量】下拉框默认为10,可以下拉选择,也可以自定义下载数量 【确定】按钮点击后开始下载图片下载日志会显示在下方的文本框中 导入tkinter库导入tkinter的库,可以使用ttkbootstrap美化生成的界面 ttkbootstrap官网地址:ttkbootstrap.readthedocs.io/en/latest/z… import tkinter as tk from ttkbootstrap.constants import * from tkinter.filedialog import askdirectory from ttkbootstrap import Frame, Button, Label, Text, Entry, Combobox 复制代码 窗口属性主要内容包括: 根据设备屏幕的宽高自适应调整窗口的宽高 设置窗口打开的位置 设置窗口标题 创建图片保存地址、输入关键词、下载数量的变量 创建两个矩形区域包含组件 class BaiDuImageSpiderGUI: def __init__(self, win_width=1000, win_height=600): # 创建一个 tkinter 对象 self.root = tk.Tk() # 设置窗口的宽度和高度 self.win_width = win_width self.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() 复制代码 按钮和输入框主要内容包括: 在第一个矩形框中绘制组件 用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) 复制代码 文本输入框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): pass def create_window(self): self.create_frame_1() self.create_frame_2() self.root.mainloop() 复制代码 运行实例化BaiDuImageSpiderGUI(),调用create_window()方法创建界面 if __name__ == '__main__': app = BaiDuImageSpiderGUI() app.create_window() 复制代码 打包成exe文件为了方便使用和运行,使用pyinstaller工具打包为exe文件 pyinstaller -F -w -i sspython.ico image_spiderGUI.py 复制代码 源码地址链接:pan.baidu.com/s/19Wu4OALE… 提取码:8umi |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |