gpt4 book ai didi

python - 类型错误 : askopenfilename() missing 1 required positional argument: 'root' In [ ]:

转载 作者:行者123 更新时间:2023-12-01 03:22:59 24 4
gpt4 key购买 nike

我正在尝试编写一段代码,使用单选按钮打开文件资源管理器中的文件夹。我找到了一个示例,但我遇到了以下错误:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files (x86)\Anaconda3\lib\tkinter\__init__.py", line 1550, in __call__
return self.func(*args)
TypeError: askopenfilename() missing 1 required positional argument: 'root'

这是我的代码:

from tkinter import*
from tkinter import filedialog
import tkinter.constants

class filedialog(tkinter.Frame):
def __init__(self, root):
tkinter.Frame.__init__(self, root)

Radiobutton_opt = {'fill': tkinter.constants.BOTH, 'padx': 5, 'pady': 5}
tkinter.Radiobutton(self, text = "Browse",
command = self.askopenfilename
).grid( row=2, column =0, columnspan = 2, sticky =W)
self.file_opt = options = {}

self.dir_opt = options = {}
options['initialdir'] = 'C:\\Users\\Documents\\Python Scripts'

def askopenfilename(self, root):
filename = filedialog().askopenfilename(**self.file_opt)
if filename:
return open(filename, 'r')

def askdirectory(self, root):
return filedialog.askdirectory(**self.dir_opt)

if __name__=='__main__':
root = Tk()
filedialog(root).grid()
root.mainloop()

该按钮确实出现,但当我按下它时,出现错误。我是 python 新手,希望得到任何帮助。

最佳答案

你有两个问题。首先,您直接从单选按钮调用 self.askopenfilename ,而不为其提供所需的参数。这正是错误消息所告诉您的内容。

第二,您定义了一个名为 filedialog 的类,它采用一个参数:root此类重写 filedialog 模块。因此,从 askopenfilename 内部,您正在对完全相同的 askopenfilename 进行递归调用,并且由于 self.file_opt 而无法提供所需的参数是一个空字典。

关于python - 类型错误 : askopenfilename() missing 1 required positional argument: 'root' In [ ]:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41741964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com