root = tk.Tk() root.withdraw() # 获取文件夹路径 f_path = filedialog.askopenfilename main() <function askopenfilename at 0x000001F2788AAD30>
时间: 2023-06-15 07:04:35 浏览: 71
这段代码使用了 tkinter 和 filedialog 模块,它实现了一个选择文件对话框,让用户可以选择一个文件并返回该文件的路径。
首先,我们创建了一个 Tk 对象并将其隐藏。然后,我们调用 filedialog 模块中的 askopenfilename 函数,这个函数会弹出一个文件对话框,让用户选择一个文件。最后,函数返回所选文件的路径,并将路径存储在 f_path 变量中。
在这里,你需要把 `filedialog.askopenfilename` 改为 `filedialog.askopenfilename()`,这样才能调用函数并获取返回的文件路径。
相关问题
def start(): global img, pre_pts while True: root = tk.Tk() root.withdraw() f_path = filedialog.askopenfilename() if f_path: img = cv.imread(f_path) break else: messagebox.showinfo("提示", "请选择文件!") 修改上述代码,使得打开本地文件夹不选文件或者关闭系统窗口后,点击主界面按钮仍能够触发start()函数
可以使用try-except语句来捕获用户关闭系统窗口的操作,然后在except语句块中继续循环等待用户选择文件。同时,我们可以将主界面按钮的command参数设置为start函数,这样即使用户没有选择文件或关闭了系统窗口,点击主界面按钮仍会触发start函数。
修改后的代码如下:
```python
def start():
global img, pre_pts
while True:
root = tk.Tk()
root.withdraw()
try:
f_path = filedialog.askopenfilename()
if f_path:
img = cv.imread(f_path)
break
except:
pass
# 创建主界面
root = tk.Tk()
# 设置窗口标题
root.title("文件选择器")
# 设置窗口大小
root.geometry("300x200")
# 创建按钮
btn_select = tk.Button(root, text="选择文件", command=start)
btn_select.pack(pady=20)
# 进入消息循环
root.mainloop()
```
def start(): global img, pre_pts #count = 1 while True: root = tk.Tk() root.withdraw() f_path = filedialog.askopenfilename() if f_path: img = cv.imread(f_path) break else: messagebox.showinfo("提示", "请选择文件!") 修改上述代码,使得打开本地文件夹不选文件或者关闭系统窗口后,使得槽函数能够被重新触发
def start():
global img, pre_pts
while True:
root = tk.Tk()
root.withdraw()
f_path = filedialog.askopenfilename()
root.destroy() # 关闭窗口
if f_path:
img = cv.imread(f_path)
break
else:
messagebox.showinfo("提示", "请选择文件!")
continue # 重新触发槽函数