tkinter实现文件选择框遇到的问题及解决办法

问题:同一界面,多个录入框,点击按钮选择文件并将文件名显示在指定录入框中。如下图所示:

 

解决办法:使用自定义类封装文件选择按钮。

核心代码:

from tkinter import filedialog

'''
文件选择按钮类
初始化参数:parent-所属窗口,text-按钮显示文本,dest-与录入框关联的值变量,r、c-按钮在界面上的布局行和列
'''
class FileButton():
    def __init__(self, parent, text, dest, r, c):
        self.dest = dest
        self.btn = ttk.Button(parent, text = text, command = self.browse)
        self.btn.grid(row=r, column=c)

    def browse(self):
        filename = filedialog.askopenfilename()
        if self.dest != None  and filename != None and filename != '':
            self.dest.set(filename)

说明:

1、需要用到tkinter的filedialog。

2、调用过程示例代码如下:

from tkinter import *
from tkinter import ttk

root = Tk()

#初始化第一个文件录入框entry1并分配值变量txt1
txt1 = StringVar()
entry1 = ttk.Entry(root, textvariable=txt1)
entry1.grid(row = 1, column = 1)
#初始化第二个文件录入框entry2并分配值变量txt2
txt2 = StringVar()
entry2 = ttk.Entry(root, textvariable=txt2)
entry2.grid(row = 2, column = 1)
#调用自定义类初始化文件选择按钮并关联指定的值变量
FileButton(root, "...", txt1, 1, 2)
FileButton(root, "...", txt2, 2, 2)

root.mainloop()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值