首页 > 编程语言 >python tkinter 使用(三)

python tkinter 使用(三)

时间:2023-12-26 20:24:21浏览次数:33  
标签:files tkinter img python tk 使用 filedialog root

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)

标签:files,tkinter,img,python,tk,使用,filedialog,root
From: https://www.cnblogs.com/zhjing/p/17929273.html

相关文章

  • python tkinter使用(五)
    pythontkinter使用(五)本篇文章讲述tkinter中treeview的使用Treeview是一个多列列表框,可以显示层次数据。#!/usr/bin/python3#-*-coding:UTF-8-*-"""@Author:zh@Time2023/11/23下午8:28.@Email:@Describe:treeview使用"""importtkinterastkfrom......
  • python tkinter使用(四)
    pythontkinter使用(四)本篇文章主要讲下tkinter的文本框相关.tkinter中用Entry来实现输入框,类似于android中的edittext.具体的用法如下:1:空白输入框如下:name=tk.Entry(window)name.pack()2:设置输入框的默认文案name=tk.Entry(window)name.pack()name.inser......
  • python tkinter使用(十一)
    pythontkinter使用(十一)本篇文章主要讲下tkinter窗口的一些属性,以及实现无法关闭的窗口中遇到的一些问题.#!/usr/bin/python3#-*-coding:UTF-8-*-"""@Author:zh@Time2023/11/28下午13:23.@Email:@Describe:"""fromtkinterimport*importtkinteras......
  • Android Notification 以及 通知铃音使用
    AndroidNotification以及通知铃音使用上一篇文章讲了手机震动的使用.本篇继续讲解铃音的使用,并且在讲下通知消息的使用.1:通知消息的使用代码如下:publicstaticvoidnotice(Contextcontext){try{NotificationCompat.Builderbuilder=ne......
  • python获取已安装程序列表
    python获取已安装程序列表本文主要讲述通过python脚本获取android设备已安装列表。首先,Python本身无法直接获取Android设备上已安装的程序列表,所以这里主要借助adb命令来实现。具体的内容如下:#!/usr/bin/python#coding=utf-8importsubprocessimportos#通过adb命令获取......
  • python+pytest接口自动化 —— 参数关联
    什么是参数关联?参数关联,也叫接口关联,即接口之间存在参数的联系或依赖。在完成某一功能业务时,有时需要按顺序请求多个接口,此时在某些接口之间可能会存在关联关系。比如:B接口的某个或某些请求参数是通过调用A接口获取的,即需要先请求A接口,从A接口的返回数据中拿到需要的字段值,在请......
  • [资源管理] SQL Server 通过Resouce Governor来限制用户资源的使用
    创建资源池CREATERESOURCEPOOL[rp_test]WITH(min_cpu_percent=0,max_cpu_percent=1,min_memory_percent=0,max_memory_percent=1,AFFINITYSCHEDULER=AUTO)GO创建负载组CREATEWORKLOADGROUP[wlp_test]WITH(group_max_requests=10,importance=High,request_m......
  • Python subprocess 使用(二)
    Pythonsubprocess使用(二)本篇继续介绍subprocess的使用.这里主要添加两个自己在工作过程中常用的两个小命令.1:获取顶层activityimportsubprocessdefget_top_activity():#使用adb命令获取顶层activitycmd='adbshelldumpsyswindow|grep"mCurrentFocu......
  • API 参考与帮助内容:一站式开发与使用者支援
    API文档API文档是旨在了解API详细信息的综合指南。通常,它们包括端点、请求示例、响应类别和示例以及错误代码等信息。API文档可帮助开发人员了解API端点的具体细节,并了解如何将API成功集成到他们的软件中。文档生成工具API文档生成工具是直接从源代码创建API文档的......
  • Vue3+TS+Vite中 vConsole 插件的使用
    vConsole一个轻量、可拓展、针对手机网页的前端开发者调试面板。vConsole是框架无关的,可以在Vue、React或其他任何框架中使用。现在vConsole是微信小程序的官方调试工具。https://gitee.com/Tencent/vConsole/ 平时在web应用开发过程中,我们可以console.log去输出一些......