tkinter之filedialog

简介: tkinter之filedialog
import tkinter as tk
from tkinter import filedialog
from PIL import Image


def open_img():
    try:
        global img
        filepath = filedialog.askopenfilename()  # 打开文件,返回该文件的完整路径
        filename.set(filepath)
        img = Image.open(filename.get())
    except Exception as e:
        print("您没有选择任何文件", e)


def save_png():
    try:
        filetypes = [("PNG", "*.png"), ("JPG", "*.jpg"), ("GIF", "*.gif"), ("txt files", "*.txt"), ('All files', '*')]
        # 返回一个 pathname 文件路径字符串,如果取消或者关闭则返回空字符,返回文件如何操作是后续代码的事情,
        # 该函数知识返回选择文件的文件名字,不具备保存文件的能力
        filenewpath = filedialog.asksaveasfilename(title='保存文件',
                                                   filetypes=filetypes,
                                                   defaultextension='.png',
                                                   initialdir='C:/Users/Administrator/Desktop')
        path_var.set(filenewpath)
        # 保存文件
        img.save(str(path_var.get()))
    except Exception as e:
        print(e)


window = tk.Tk()
window.title("逻辑网")
window.geometry('400x200+300+300')
window.iconbitmap('../image/icon.ico')
filename = tk.StringVar()
path_var = tk.StringVar()
# 定义读取文件的组件
entry = tk.Entry(window, textvariable=filename)
entry.grid(row=1, column=0, padx=5, pady=5)
tk.Button(window, text='选择文件', command=open_img).grid(row=1, column=1, padx=5, pady=5)
# 定义保存文件的组件
entry1 = tk.Entry(window, textvariable=path_var)
entry1.grid(row=2, column=0, padx=5, pady=5)
tk.Button(window, text='保存文件', command=save_png).grid(row=2, column=1, padx=5, pady=5)
window.mainloop()
目录
相关文章
RMAN备份及恢复归档日志的语法
RMAN备份及恢复归档日志的语法
1566 0
|
7月前
|
Linux 应用服务中间件 数据安全/隐私保护
如何重置阿里云服务器密码?
本文介绍了如何重置阿里云服务器密码,包括设置新密码的流程及注意事项。内容涵盖登录控制台、选择服务器、重置密码参数配置等步骤,并详细说明了在线和离线修改密码的不同场景及操作方式,适用于Windows和Linux实例,默认用户名分别为Administrator和root。
|
Rust 数据可视化 网络安全
一款高颜值、现代化的 Git 可视化管理工具
GitButler 是由 GitHub 联合创始人 Scott Chacon 开源的 Git 客户端,采用 Tauri/Rust/Svelte 构建。它支持虚拟分支、轻松提交管理、GitHub 集成、SSH 密钥管理和 AI 工具等功能,目前仅支持 macOS 和 Linux 平台。用户可以通过拖拽方式快速聚合多个分支的改动,实现灵活的跨分支操作。
|
监控 JavaScript 前端开发
ARMS的移动应用监控
【8月更文挑战第23天】
377 6
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
机器学习/深度学习 人工智能 缓存
探秘 DeepSeek:那些你必须了解的事
DeepSeek是一家由中国幻方量化支持的创新型AI公司,专注于开发高性能、低成本的大语言模型。其独特的技术路径打破了参数规模、能耗成本和认知可靠性之间的“三元悖论”,实现了在单张显卡上运行170亿参数模型的突破。DeepSeek通过开源策略和高性价比模型(如DeepSeek-R1),大幅降低了AI应用门槛,推动了全球开发者社区的发展。其应用场景广泛覆盖教育、医疗、金融等领域,显著提升了工作效率和服务质量。DeepSeek的成功不仅在于技术创新,更在于其开放合作的理念,正引领AI行业的新变革。
2847 9
探秘 DeepSeek:那些你必须了解的事
|
缓存 安全 算法
Spring Security OAuth 2.0 资源服务器— JWT
Spring Security OAuth 2.0 资源服务器— JWT
1414 1
|
机器学习/深度学习 人工智能 算法
|
人工智能 自然语言处理 前端开发
OpenAI 12天发布会全解析 | AI大咖说
OpenAI近日宣布将在12个工作日内每天进行一场直播,展示一系列新产品和样品。首日推出GPT-o1正式版,性能大幅提升;次日展示Reinforcement Fine-Tuning技术,提高模型决策质量;第三天推出Sora,实现高质量视频生成;第四天加强Canvas,提升多模态创作效率;第五天发布ChatGPT扩展功能,增强灵活性;第六天推出ChatGPT Vision,实现多模态互动;第七天推出ChatGPT Projects,优化项目管理。这些新技术正改变我们的生活和工作方式。
1893 9
|
监控 数据采集 机器学习/深度学习
AIGC-Whisper模型
6月更文挑战第1天