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()
目录
相关文章
|
传感器 监控
基于STM32的智能交通灯控制系统设计与实现
基于STM32的智能交通灯控制系统设计与实现
1862 0
RMAN备份及恢复归档日志的语法
RMAN备份及恢复归档日志的语法
1750 0
|
6月前
|
SQL 关系型数据库 MySQL
MySQL 大表 DDL 生死局:底层原理拆解与三大方案全维度对比,生产环境零宕机避坑指南
本文深度解析MySQL大表DDL三大方案:原生Online DDL(支持INSTANT/INPLACE/COPY模式)、pt-online-schema-change(触发器同步)和gh-ost(binlog同步)。涵盖执行原理、锁机制、性能影响、主从延迟控制及十大避坑指南,助力研发与DBA安全高效完成亿级表结构变更。
538 1
|
Linux 应用服务中间件 数据安全/隐私保护
如何重置阿里云服务器密码?
本文介绍了如何重置阿里云服务器密码,包括设置新密码的流程及注意事项。内容涵盖登录控制台、选择服务器、重置密码参数配置等步骤,并详细说明了在线和离线修改密码的不同场景及操作方式,适用于Windows和Linux实例,默认用户名分别为Administrator和root。
|
存储 Prometheus 监控
评估系统的可用性时间
评估系统可用性时间是指对系统在预定时间内正常运行的能力进行测量和分析,以确保其稳定性和可靠性满足用户需求。这通常涉及对系统故障率、恢复时间和维护周期的综合考量。
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
缓存 安全 算法
Spring Security OAuth 2.0 资源服务器— JWT
Spring Security OAuth 2.0 资源服务器— JWT
1631 1
|
监控 数据采集 机器学习/深度学习
AIGC-Whisper模型
6月更文挑战第1天
|
前端开发 JavaScript
前端 JS 经典:下载的流式传输
前端 JS 经典:下载的流式传输
508 1
|
jenkins Shell 持续交付
Jenkins job 创建、参数化、定时构建及时区偏差问题
在Jenkins中创建新任务,步骤:设置任务名,选择自由风格,输入描述并配置丢弃旧构建的规则(保留最近3次)。接着,参数化构建过程,添加字符参数并设定其名称、默认值和描述。在构建触发器中,设定定时构建为每2分钟一次(H2/ * * * *)。在构建阶段执行Shell命令,打印参数param。构建结果显示每2分钟执行一次,保留最近3次构建,参数默认值为Jenkins。定时构建的cron语法详解,并给出常见定时构建示例。当遇到Jenkins显示时间与系统时间不一致(UTC时间差8小时)的问题,解决办法是在Docker启动时添加参数调整时区至上海,确认时区修改成功后,构建历史时间将与系统时间同步。

热门文章

最新文章