import customtkinter as ctk
from tkinter import filedialog
class MySelectFileFrameGui:
def __init__(self, main_frame: ctk.CTkFrame):
# 定义返回的文件路径
self.file_path = None
# 定义主窗口
self.main_frame = main_frame
# 定义部件主窗口
self.select_file_main_frame = ctk.CTkFrame(
master=self.main_frame,
corner_radius=0,
)
self.select_file_main_frame.grid(row=0, column=0, sticky="nsew")
self.select_file_main_frame.grid_columnconfigure(index=0, weight=1)
# 定义选择文件路径展示对话框
self.file_path_entry = ctk.CTkEntry(
master=self.select_file_main_frame,
placeholder_text="文件路径",
state="disabled",
)
self.file_path_entry.grid(row=0, column=0, padx=(20, 10), pady=(20, 20), sticky="nsew")
# 定义选择文件按钮
self.select_file_button = ctk.CTkButton(
master=self.select_file_main_frame,
height=40,
text="选择文件",
command=self.set_select_file_button_event,
)
self.select_file_button.grid(row=0, column=1, padx=(10, 20), pady=(20, 20), sticky="nsew")
# 选择文件按钮事件
def set_select_file_button_event(self):
file_path = filedialog.askopenfilename(
title="Select a File",
filetypes=(("Excel files", "*.xls"), ("Excel files", "*.xlsx"))
)
if file_path:
self.file_path_entry.configure(state="normal") # 先设置为正常状态以便更新文本
self.file_path_entry.delete(0, ctk.END) # 删除现有文本
self.file_path_entry.insert(0, file_path) # 插入新文本
self.file_path_entry.configure(state="disabled") # 设置为不可编辑状态
# 返回选择文件面板
def set_select_file_main_panel(self):
return self.select_file_main_frame
# 返回文件路径
def get_excel_file_path(self):
return self.file_path_entry.get()
# # 创建主窗口
# root = ctk.CTk()
# root.title("File Selector")
# root.geometry(f"{1100}x{580}")
# root.grid_columnconfigure(0, weight=1)
#
# mfpg = MySelectFileFrameGui(main_frame=root)
# mfpg.set_select_file_main_panel()
#
# # 运行主循环
# root.mainloop()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!