python tkinter 使用(三)
python tkinter 使用(三)
本篇文章主要讲下tkinter下的filedialog的使用.
1: askopenfilename
首先使用tkinter中fiedialog来实现一个简单的文件选择器.
这里使用askopenfilename()来启动文件选择器,选择成功后打印下所选文件的名称.
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
"""
@Author: zh
@Time 2023/11/22 下午12:31 .
@Describe:
"""
import tkinter as tk
import tkinter.filedialog
# 创建窗口
root = tk.Tk()
root.title("root")
root.geometry("500x500")
#筛选 /home/zh/下载 目录下的jpg文件.
def imgSelect(event):
root.filename = tkinter.filedialog.askopenfilename(initialdir="/home/zh/下载", title="图片选择",
filetypes=(("jpeg files", "*.jpg"), ("all files", "*.*")))
print(root.filename)
#筛选所有的mp4文件
def videoSelect(event):
root.filename = tkinter.filedialog.askopenfilename(initialdir="/", title="图片选择",
filetypes=(("mp4 files", "*.mp4"), ("all files", "*.*")))
print(root.filename)
img = tk.Button(text="图片选择")
img.pack()
img.bind('<1>',imgSelect)
video = tk.Button(text="视频选择")
video.pack()
video.bind('<1>',videoSelect)
root.mainloop()
其中initialdir参数,可以指定目录来选择, filetypes则可以筛选指定的类型的文件.
2: askopenfile
askopenfile是用于打开文件对话框的函数,它可以让用户选择一个文件并返回该文件的文件对象.
代码如下:
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
"""
@Author: zh
@Time 2023/11/22 下午12:35 .
@Describe:
"""
import tkinter as tk
import tkinter.filedialog
# 创建窗口
root = tk.Tk()
root.title("root")
root.geometry("500x500")
def imgOpen(event):
file = tkinter.filedialog.askopenfile(initialdir="/home/zh/下载", title="图片选择",
filetypes=(("jpeg files", "*.jpg"), ("all files", "*.*")))
print(file)
img = tk.Button(text="图片打开")
img.pack()
img.bind('<1>', imgOpen)
root.mainloop()
initialdir参数指定了对话框打开时的默认目录,title参数指定了对话框的标题,filetypes参数指定了对话框中显示的文件类型
执行后我们可以看到如下输出:
<_io.TextIOWrapper name='/home/zh/下载/IMG-20230830-WA0008.jpg' mode='r' encoding='UTF-8'>
3: askopenfiles
askopenfiles与askopenfile类似,不同的地方再于支持多选,输出也是以list形式输出:
def imgsOpen(event):
files = tkinter.filedialog.askopenfiles(initialdir="/home/zh/下载", title="图片选择",
filetypes=(("jpeg files", "*.jpg"), ("all files", "*.*")))
print(files)
img = tk.Button(text="多选图片打开")
img.pack()
img.bind('<1>', imgsOpen)
输出如下:
[<_io.TextIOWrapper name='/home/zh/下载/IMG-20230830-WA0008.jpg' mode='r' encoding='UTF-8'>, <_io.TextIOWrapper name='/home/zh/下载/IMG-20230830-WA00081111.jpg' mode='r' encoding='UTF-8'>]
4: askdirectory
askdirectory函数用于弹出一个对话框后让用户选择一个目录,并返回所选目录的路径.
def askdirectory(event):
path = tkinter.filedialog.askdirectory()
print(path)
img = tk.Button(text="获取路径")
img.pack()
img.bind('<1>', askdirectory)
python tkinter 使用(三)的更多相关文章
- Python Tkinter Entry(文本框)
Python学习记录--关于Tkinter Entry(文本框)的选项.方法说明,以及一些示例. 属性(Options) background(bg) borderwidth(bd) cursor e ...
- Python Tkinter学习笔记
介绍 入门实例 显示一个窗口,窗口里面有一个标签,显示文字 import tkinter as tk # 一个顶层窗口的实例(Top Level),也称为根窗口 app = tk.Tk() # 设置窗 ...
- 进击的Python【第三章】:Python基础(三)
Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...
- Python 基础语法(三)
Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...
- 笨办法学 Python (第三版)(转载)
笨办法学 Python (第三版) 原文地址:http://blog.sina.com.cn/s/blog_72b8298001019xg8.html 摘自https://learn-python ...
- Python/MySQL(三、pymysql使用)
Python/MySQL(三.pymysql使用) 所谓pymysql就是通过pycharm导入pymysql模块进行远程连接mysql服务端进行数据管理操作. 一.在pycharm中导入pymysq ...
- python学习第三次记录
python学习第三次记录 python中常用的数据类型: 整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set). int.数 ...
- python中的三种输入方式
python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...
- python 历险记(三)— python 的常用文件操作
目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 o ...
- 3.Python爬虫入门三之Urllib和Urllib2库的基本使用
1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HTML代码,加 JS.CSS ...
随机推荐
- 使用C#发送邮件支持 Implicit SSL
安装Package: Install-Package AIM 使用下面的代码发送: class Mail { private static string mailAddress = "{yo ...
- pandas常用的数据类型,(serises和dataform)
- Machine Learning for NetFlow Anomaly Detection With Human-Readable Annotations 笔记
Machine Learning for NetFlow Anomaly Detection With Human-Readable Annotations 关键摘要 我们开发了一个复杂企业网络中的异 ...
- Strimzi Kafka Bridge(桥接)实战之二:生产和发送消息
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<Strimzi Kafka B ...
- 本计划在 .NET 8 中推出的 WASI 推迟到 .NET 9
本计划在 .NET 8 中推出的 WASI 已推迟到 .NET 9,请参阅 Github 上的 WASI 跟踪问题. 在.NET 8 Preview 4 开始支持生成与 WASI 兼容的 .wasm ...
- CSE 2023 混合年度回声周末
CSE 2023 混合年度回声周末(2023 年 4 月 13 日至 15 日)25 周年银周年纪念版 近 900 名参与者参加.又是成功的伟大一年.明年 2024 年 4 月在多伦多见.敬请关注全年 ...
- [MAUI]深入了解.NET MAUI Blazor与Vue的混合开发
@ 目录 Vue在混合开发中的特点 创建MAUI项目 创建Vue应用 使用element-ui组件库 JavaScript和原生代码的交互 传递根组件参数 从设备调用Javascript代码 从Vue ...
- Frog 3 题解
Frog 3 题目大意 题意都这么明确了还要这个干什么. 存在 \(n\) 个点,每个点有一个属性 \(h_i\),\(h_i\) 单增,从点 \(i\) 移动到点 \(j(j>i)\) 的代价 ...
- Go 包操作之如何拉取私有的Go Module
Go 包操作之如何拉取私有的Go Module 在前面,我们已经了解了GO 项目依赖包管理与Go Module常规操作,Go Module 构建模式已经成为了 Go 语言的依赖管理与构建的标准. 在平 ...
- 用阿里云镜像Centos7通过rpm和源码编译方式安装MySQL5版本
这里只说明安装和注意事项,更具体的配置如端口号.cnf文件配置等就不写了. 阿里云开源镜像站资源目录 (aliyun.com) 我用的是基础版本. 基础版本镜像是默认不联网的,可以用下面的命令ping ...