file - 在 Tkinter 程序运行时立即复制文件
问题描述
我有一个小 GUI 程序,它应该只获得一些输入以将这些输入用于方法调用。
因此我有几个 tk.Entry 对象。现在我要执行的方法需要硬盘中的文件。我想用 ElementTree 刮掉它。(我认为该文件需要与我的 .py 文件位于同一目录中?如果不是,请告诉我如何使用其他路径中的文件)。我的想法是将该文件复制到当前文件路径中,然后只使用一个简单的调用来访问该文件。但是当我想复制这个文件时,它会在我关闭程序后被复制,这不应该发生。它应该立即复制文件,以便我可以使用它。
有没有办法刷新我的文件或者你有其他想法?
谢谢,这是我的代码:
from Modules import copy_file
import tkinter as tk
class MainApplication(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
for Frame in (StartPage, SuccessPage):
page_name = Frame.__name__
frame = Frame(parent=container, controller=self)
self.frames[page_name] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame("StartPage")
# method to show frames
def show_frame(self, page_name):
frame = self.frames[page_name] #getting our frame from our frames list
frame.tkraise() #raise it up to the front
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
# Open File Button
self.button_open_file = ttk.Button(self, text = "Open File", command = self.get_file_directory).grid(row=5, column=0, sticky="WE")
def get_file_directory(self):
filename = filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("all files","*.*"),("jpeg files","*.jpg")))
copy_file(filename)
class SuccessPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
# Open File Button
self.label = tk.Label(self, text = "Lab").grid(row=0 column=0, sticky="WE")
if __name__ == '__main__':
application = MainApplication().mainloop()
----------------------------------------------------------------------------------------------
Modules.py
from shutil import copy
def copy_file(src):
destination_path = os.path.dirname(os.path.realpath(__file__))
copy(src, destination_path)
解决方案
推荐阅读
- python-3.x - 从元数据动态创建 DataFrame 列
- mysql - MySQL 将 column1 设置为 column2 未设置正确的值
- sql-server - SQL Server DDL 触发器无法捕获 DISABLE ALL 事件
- c++ - 如何使用 C++ 自定义比较函数对某些参数进行排序?
- api - 如何获得 Pinterest API 应用程序批准?
- javascript - 根据 React 中另一个下拉列表中选择的值更改下拉列表中的值
- user-interface - Flutter how to paint custom gradients
- archimate - 我应该使用哪个 Archimate 元素来为 Azure 租户建模?
- android - Android Chrome 不会自动更新 service worker
- javascript - 从生成的数据中提取