python使用tkinter模块实现文件选择功能

目录
  • 前言
  • 1.导入库和模块
  • 2.编写按钮命令
  • 3. 窗体初始化及布局
  • 4.运行

前言

学习Python中,总想做个图形界面,找来找去,找到了tkinter。

练习内容:图形界面中,点击按钮后,利用弹出对话框选择文件(或文件夹)

1.导入库和模块

import tkinter as tk
from tkinter import filedialog

此处练习过程中出现的错误:在没有第2个导入语句时,使用 tk.filedialog 后,提示错误,显示

Cannot find reference ‘filedialog’ in 'init.py

我查了“Lib/tkinter/"文件夹,发现里面并没有 tkinter.py,但是有 filedialog.py
我想着:tkinter是库,filedialog是模块吧,
但为啥 tk.filedialog不能用?
反而,在有第2个导入语句时,用 tk.filedialog 和 filedialog 都可以

出错情况 :

正常情况:

2.编写按钮命令

def select_file():
    # 单个文件选择
    selected_file_path = filedialog.askopenfilename()  # 使用askopenfilename函数选择单个文件
    select_path.set(selected_file_path)
def select_files():
    # 多个文件选择
    selected_files_path = filedialog.askopenfilenames()  # askopenfilenames函数选择多个文件
    select_path.set('\n'.join(selected_files_path))  # 多个文件的路径用换行符隔开
def select_folder():
    # 文件夹选择
    selected_folder = filedialog.askdirectory()  # 使用askdirectory函数选择文件夹
    select_path.set(selected_folder)

注意:三个按钮命令中,变量select_path是主窗体中Entry控件的textvariable属性值,在窗体初始化过程中,需要为其赋值:

select_path = StringVar()

3. 窗体初始化及布局

root = tk.Tk()
root.title("选择文件或文件夹,得到路径")
# 初始化Entry控件的textvariable属性值
select_path = tk.StringVar()
# 布局控件
tk.Label(root, text="文件路径:").grid(column=0, row=0, rowspan=3)
tk.Entry(root, textvariable = select_path).grid(column=1, row=0, rowspan=3)
tk.Button(root, text="选择单个文件", command=select_file).grid(row=0, column=2)
tk.Button(root, text="选择多个文件", command=select_files).grid(row=1, column=2)
tk.Button(root, text="选择文件夹", command=select_folder).grid(row=2, column=2)
root.mainloop()

4.运行

选择了单个文件的情况

到此这篇关于python使用tkinter模块实现文件选择功能的文章就介绍到这了,更多相关python实现选择功能内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python编程使用tkinter模块实现计算器软件完整代码示例

    Python 提供了多个图形开发界面的库.Tkinter就是其中之一. Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里.Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中. 该计算器使用Python tkinter模块开发 效果如下图 import tkinter #导入tkinter模块 root = t

  • 详解python tkinter模块安装过程

    引言: 在Python3下运行Matplotlib之时,碰到了"No module named _tkinter"的问题,花费数小时进行研究解决,这里讲整个过程记录下来,并尝试分析过程中的解决思路利弊得失,以资后效,这里重点提示需要关注错误信息的分析,这个是第一现场. 环境介绍 任何技术问题的出现以及修复都是依赖于系统环境以及特定版本的,这里首先描述如下: Ubuntu: 17.10  Python: 3.6.1 基于virutalenv来切换不同的Python环境 tkinter的问

  • python实现录制全屏和选择区域录屏功能

    最近给客户演示程序运行结果,我就想到用Python写一个录屏程序,在网上能找到现成的源码,但是它的录屏是录制整个屏幕的.但是在屏幕桌面下方的任务栏工具栏里有些东西,不希望被录制到视频里,因此需要实现一个选择区域录屏,就像qq截图那样的.我编写的程序如下,在主函数的输入参数里有一个选项控制是全屏录制还是选择区域录制.在编写这个程序时,我有一个疑问,在初始化写视频VideoWriter函数的第4个参数,它表示视频帧的高和宽,全屏录制方式的参数是(height,width),选择区域录制的参数是(wi

  • Python3 Tkinter选择路径功能的实现方法

    效果基于Python3. 在自己写小工具的时候因为这个功能纠结了一会儿,这里写个小例子,供有需要的参考. 小例子,就是点击按钮打开路径选择窗口,选择后把值传给Entry输出. 效果预览 这是选择前: 选择: 选择后: 代码 很基础的写法. from tkinter import * from tkinter.filedialog import askdirectory def selectPath(): path_ = askdirectory() path.set(path_) root =

  • Python Tkinter模块 GUI 可视化实例

    我就废话不多说了,直接上代码: coding:utf-8 #自带的Tkinter模块 from Tkinter import * from ScrolledText import ScrolledText #gui框 root = Tk() root.title('视频多线程') #窗口坐标和大小 +代表调整坐标 x代表调整大小 root.geometry('500x500+200+100') #滚动条 text = ScrolledText(root,font=('微软雅黑',10)) #实现

  • Python实现随机选择元素功能

    如果要从序列中随机挑选元素,我们可以使用random模块的random.choice()方法: 如果想要取出N个元素,将选出的元素一处以做进一步的考察,可以使用random.sample()方法: 如果我们只是想要打乱序列的顺序(洗牌),可以使用random.shuffle(): 要产生随机数,可以使用random.randint()方法: 如果要产生0-1之间均匀分布的浮点数值,可以使用random.random()方法: 如果要得到N各随机比特位所表示的整数,可以使用random.getra

  • Python tkinter模块弹出窗口及传值回到主窗口操作详解

    本文实例讲述了Python tkinter模块弹出窗口及传值回到主窗口操作.分享给大家供大家参考,具体如下: 有些时候,我们需要使用弹出窗口,对程序的运行参数进行设置.有两种选择 一.标准窗口 如果只对一个参数进行设置(或者说从弹出窗口取回一个值),那么可以使用simpledialog,导入方法: from tkinter.simpledialog import askstring, askinteger, askfloat 完整例子 import tkinter as tk from tkin

  • python tkinter模块的简单使用

    由于一些小原因,被迫开始了tkinter一次实战演练.在此做一些记录,总结以及给自己留一些轮子哈哈哈哈哈哈 tkinter 是 Python 的一个GUI库,本次实战完全使用tkinter,不牵扯任何其他第三方库的使用. 1.任务要求 画一个具有上传病患信息以及图片功能的用户界面 2.简单设计 由于时间紧迫且只要求可视化,背后没有必要太过精细,所以简单设计思路是,利用下拉列表实现病患信息的填写,用text显示选择图片的路径. 表面上的组件包括:两个Button:选择目录 SELECT THE D

  • python tkinter的消息框模块(messagebox,simpledialog)

    tkinter提供了三个模块,可以创建弹出对话窗口:(使用必须单独导入模块) 1.messagebox 消息对话框 示例:askokcancel import tkinter # 导入消息对话框子模块 import tkinter.messagebox # 创建主窗口 root = tkinter.Tk() # 设置窗口大小 root.minsize(300,300) # 声明函数 def okqqq(): # 弹出对话框 result = tkinter.messagebox.askokcan

  • python switch 实现多分支选择功能

    相信玩过几天 python 的小伙伴都知道,python 里并没有 switch 关键字实现,那这是为什么呢? 根据官方说法 PEP 3103 - A Switch/Case Statement. 实现 switch case 需要被判断的变量是可哈希和可比较的,这与 python 提倡的灵活性有冲突.在实现上优化不好做,可能到最后最差的情况汇编出来和 if else 组是一样的,所以 python 没有支持 但是没有 switch 关键字,不代表不能实现类似效果,接下来通过几个小程序来说明此类

随机推荐