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 使用(三)的更多相关文章

  1. Python Tkinter Entry(文本框)

    Python学习记录--关于Tkinter Entry(文本框)的选项.方法说明,以及一些示例. 属性(Options) background(bg) borderwidth(bd) cursor e ...

  2. Python Tkinter学习笔记

    介绍 入门实例 显示一个窗口,窗口里面有一个标签,显示文字 import tkinter as tk # 一个顶层窗口的实例(Top Level),也称为根窗口 app = tk.Tk() # 设置窗 ...

  3. 进击的Python【第三章】:Python基础(三)

    Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...

  4. Python 基础语法(三)

    Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)------------------------- ...

  5. 笨办法学 Python (第三版)(转载)

    笨办法学 Python (第三版) 原文地址:http://blog.sina.com.cn/s/blog_72b8298001019xg8.html   摘自https://learn-python ...

  6. Python/MySQL(三、pymysql使用)

    Python/MySQL(三.pymysql使用) 所谓pymysql就是通过pycharm导入pymysql模块进行远程连接mysql服务端进行数据管理操作. 一.在pycharm中导入pymysq ...

  7. python学习第三次记录

    python学习第三次记录 python中常用的数据类型: 整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set). int.数 ...

  8. python中的三种输入方式

    python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...

  9. python 历险记(三)— python 的常用文件操作

    目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 o ...

  10. 3.Python爬虫入门三之Urllib和Urllib2库的基本使用

    1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HTML代码,加 JS.CSS ...

随机推荐

  1. JavaScript动态更新数组

    1.数组的创建var arrayObj = new Array(); //创建一个数组var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长 ...

  2. 浅聊一下SpringMVC的核心组件以及通过源码了解其执行流程

    浅聊一下SpringMVC的核心组件以及通过源码了解其执行流程 MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,Controller(控制器)将View(视图.用户客户端)与Model(j ...

  3. 二叉搜索树(Binary Search Tree,BST)

    二叉搜索树(Binary Search Tree,BST) 二叉搜索树(Binary Search Tree),也称二叉查找树或二叉排序树,是一种特殊的二叉树,它满足以下性质 对于二叉搜索树的每个节点 ...

  4. element-ui实现弹窗

    element-ui实现弹窗 需要的官网组件 要弹出的页面 <template> <el-form :model="ruleForm" :rules=" ...

  5. ElasticSearch系列——介绍、安装、插件介绍、安装ElasticSearch插件、安装Kibana、安装中文分词器、倒排索引、索引操作、映射管理

    文章目录 ElasticSearch之介绍 一 Elasticsearch产生背景 1.1 大规模数据如何检索 1.2 传统数据库的应对解决方案 1.3 非关系型数据库解决方案 1.4 内存数据库解决 ...

  6. MySQL系列之——错误日志(log_error)、二进制日志(binary logs)、慢日志(slow_log)

    文章目录 1.错误日志(log_error) 1.1 作用 1.2 错误日志配置 1.3 日志内容查看 2. binlog(binary logs):二进制日志 ***** 2.1 作用 2.2 bi ...

  7. Redis系列之——高级用法

    文章目录 一 慢查询 1.1 生命周期 1.2 两个配置 1.2.1 slowlog-max-len 1.2.2 slowlog-max-len 1.2.3 配置方法 1.3 三个命令 1.4 经验 ...

  8. js排序算法--冒泡排序

    <!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...

  9. 栈溢出-GOT表劫持测试

    1.目标程序源代码 char name[64]; int main(){ int unsigned long long addr; setvbuf(stdin,0,2,0); setvbuf(stdo ...

  10. CSS 样式书写顺序及规范

    作者:WangMin 格言:努力做好自己喜欢的每一件事 在项目中,大部分前端程序员都没有按照良好的CSS书写规范来写CSS代码,每次写css样式都是用到什么就在样式表后添加什么,完全没有考虑到样式属性 ...