用tkinter编写一个获取图片资源的GUI工具
本文可以学习到以下内容:
- 使用tkinter的Entry功能获取本地文件夹
- 使用tkinter的Label功能设置文本
- 使用tkinter的Button功能创建一个按钮
- 使用tkinter的Combox功能创建一个下拉框
- 使用tkinter的pack方法对界面进行布局
效果展示
第11章用tkinter编写一个获取图片资源的GUI工具
【路径选择】按钮选择图片保存的地址
【图片内容】输入框中输入需要下载的图片关键字
【下载数量】下拉框默认为10,可以下拉选择,也可以自定义下载数量
【确定】按钮点击后开始下载图片下载日志会显示在下方的文本框中
导入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
窗口属性
主要内容包括:
- 根据设备屏幕的宽高自适应调整窗口的宽高
- 设置窗口打开的位置
- 设置窗口标题
- 创建图片保存地址、输入关键词、下载数量的变量
- 创建两个矩形区域包含组件
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
源码地址
链接:https://pan.baidu.com/s/1LLVTaZUuS7QXve2oiMYnqQ?pwd=iqv9
提取码:iqv9
用tkinter编写一个获取图片资源的GUI工具的更多相关文章
- 编写一个闹钟和定时关机工具(MFC VS2010)
这个小工具在自己生活当中能用到,运行软件以后,会显示当前的系统时间,然后你可以设定时间,再选择是定时响铃还是关机.截图如下: 前言:本程序采用visual studio 2010 ,对话框类型的应用程 ...
- Python Django 编写一个简易的后台管理工具4-添加admin模版
导入admin后台模版 可以在网上任意搜索模版,我这里也提供一个地址github 拷贝admin后台的html文件至项目的templates文件夹 创建static文件夹,将admin后台的js,im ...
- Python Django 编写一个简易的后台管理工具3-运行项目
编写view页面 def hello(request): return render(request,'hello.html') 编写html页面 <!DOCTYPE html> < ...
- Python Django 编写一个简易的后台管理工具2-创建项目
django-admin 创建项目 pycharm 创建项目
- Python Django 编写一个简易的后台管理工具1-安装环境
安装python环境 MAC 一般都会自带 Python2.x版本 的环境,你也可以在链接 https://www.python.org/downloads/mac-osx/ 上下载最新版安装. 安装 ...
- 尝鲜.net core2.1 ——编写一个global tool
本文内容参考微软工程师Nate McMaster的博文.NET Core 2.1 Global Tools 用过npm开发都知道,npm包都可以以全局的方式安装,例如安装一个http-server服务 ...
- 使用GUI工具高效构建你自己的Nuget包
写这篇文章的原因是我在学习构建nuget包的时候,发现了一个官方推荐的GUI工具,而官方的工具介绍文章已经过时,一些地方和现在最新版本的工具有些差异,所以特意利用假期最后一个下午写下来,希望能帮助更多 ...
- Python3使用tkinter编写GUI程序
目录 @(Python3中tkinter写的HTTP测试工具代码支持正则表达式和XPATH) 程序非常简单,暂时只支持GET方法,使用内置库tkinter编写GUI窗口,在Mac下运行效果图如下,wi ...
- MFC+WinPcap编写一个嗅探器之四(获取模块)
这一节主要介绍如何获取设备列表,比较简单 获取设备列表主要是在CAdpDlg中完成,也就是对应之前创建的选择适配器模块,如图: 当打开选择适配器对话框后,在列表视图控件中显示当前主机所有适配器及适配器 ...
- 使用PyQt5编写一个简单的GUI程序(pyside 有 pyside-uic 把ui文件转成py文件,pyside-rcc 把qrc文件转成 py文件导入就行了)
我做Python窗口界面编程时,经常使用PyQt进行设计.这里简单叙述一下使用PyQt5制作一个简单的图形界面的流程 PyQt的简介以及开发环境的搭建在此不多赘述. 1. 打开Qt Des ...
随机推荐
- MySQL-SQL语句查询关键字
1.SQL语句查询关键字 1.select:指定需要查找的字段信息,eg:select *,select name.同时select也支持对字段做处理,eg:select char_length(na ...
- 虚拟机配置代理(虚拟机nat)
桥接 第一步:打开clash allow lan 第二步:找到宿主机在局域网中的IP地址 第三步:配置虚拟机代理 NAT 同上 注意 一.宿主机防火墙要配置好(直接关闭会也有效果, ...
- C-02\规范及随机数rand()原理
小知识点 assert()函数 assert 断言函数,用于在调试过程中捕捉程序的错误.对某种假设条件进行检测,如果条件成立就不进行任何操作,如果条件不成立就捕捉到这种错误,并打印出错误信息,终止程序 ...
- JAVA虚拟机03-常量池项中字面量和符号引用
转https://baijiahao.baidu.com/s?id=1682261792528500739&wfr=spider&for=pc 1 符号引用 符号引用以一组符号来描述所 ...
- java_web案例文件下载案例
目的:完成javaweb的文件下载 <!--如果想要一个a标签点击后不论文件类型,都需要弹出下载,保存框:--><!--我们就需要创建一个servlet,让这个a标签指向servle ...
- 为Jekyll静态网站添加PlantUML插件
前言 突然想起来要好好整理一下自己的博客空间,已经荒废很多年,如果再不捡起来,等到自己知识老化的时候再去写东西就没人看了. 使用Github Pages + Jekyll把博客发布为静态网站,给人感觉 ...
- 大规模 IoT 边缘容器集群管理的几种架构-1-Rancher+K3s
前文回顾 大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介 ️Reference: IoT 边缘计算系列文章 Rancher + K3s 简介 Rancher: Kubernetes ...
- dvwa靶场
brute force LOW 输入账号密码直接抓包就行 接着ctrl+i传输到intruder模块中 为需要爆破的加上 §,不爆破的不加 选择攻击类型为Cluster bomb,选择username ...
- 三天吃透MySQL八股文(2023最新整理)
本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...
- c# 使用 Redis
1.安装Redis 我是在Windows上安装redis的,Redis官网我只看到linux版本的,得使用别人提供的windows版本 菜鸟教程提供的redis下载地址:https://github. ...