帮我写一个panel,里面包含ok按钮,droplist,和文件夹选择按钮,选择文件夹选择按钮选择文件,生成以文件夹里文件名为标准的列表,按Ok按钮,显示选择的文件的路径的脚本
时间: 2024-03-16 07:44:41 浏览: 108
文件夹内文件列表生成
好的,您可以参考以下代码实现您的需求:
```python
import os
import tkinter as tk
from tkinter import filedialog
class MyPanel(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.pack()
self.create_widgets()
def create_widgets(self):
# 创建文件夹选择按钮
self.folder_btn = tk.Button(self, text='选择文件夹', command=self.select_folder)
self.folder_btn.pack(side='left')
# 创建下拉列表
self.var = tk.StringVar(self)
self.var.set('请选择文件')
self.drop_list = tk.OptionMenu(self, self.var, ())
self.drop_list.pack(side='left')
# 创建ok按钮
self.ok_btn = tk.Button(self, text='OK', command=self.show_file_path)
self.ok_btn.pack(side='left')
def select_folder(self):
# 弹出文件夹选择对话框
folder_path = filedialog.askdirectory()
if folder_path:
# 获取文件夹下所有文件名
files = os.listdir(folder_path)
# 将文件名列表设置为下拉列表的选项
self.drop_list['menu'].delete(0, 'end')
for file in files:
self.drop_list['menu'].add_command(label=file, command=tk._setit(self.var, file))
def show_file_path(self):
# 获取选择的文件名和文件夹路径
file_name = self.var.get()
folder_path = os.path.dirname(self.folder_btn['text'])
# 拼接文件路径
file_path = os.path.join(folder_path, file_name)
# 在控制台输出文件路径
print(file_path)
root = tk.Tk()
panel = MyPanel(master=root)
panel.mainloop()
```
代码中使用了tkinter库创建了一个面板,包含了文件夹选择按钮、下拉列表和OK按钮。当点击文件夹选择按钮时,弹出文件夹选择对话框,选择文件夹后获取文件夹下的所有文件名,设置为下拉列表的选项。当点击OK按钮时,获取选择的文件名和文件夹路径,拼接出文件路径并在控制台输出。您可以根据自己的需求修改代码。
阅读全文