我开始用名为Tkinter的模块编写GUI,在选择askopenfilename语句按钮时,我的代码仍然有一个错误。这是错误
Tkinter回调跟踪(最近一次调用)中的异常:文件"C:\Users\Admin\AppData\Local\Programs\Python\Python37->32\lib\tkinter__init__.py",第1705行, call recent self.func(args)文件"C:\osu2mp4\src\osr2mp4-gui.py",第6行,在SelectOsuFile osu_file = filedialog.askopenfilename(initialdir="C:\User\“+用户名>+ "\Desktop",filetypes=('.osu')中,)文件"C:\Users\Admin\AppData\Local\Programs\Python\Python37->32\lib\tkinter\filedialog.py",第375行,在askopenfilename中返回打开(**选项).show()文件"C:\Users\Admin\AppData\Local\Programs\Python\Python37->32\lib\tkinter\commondialog.py",行43,以显示s= w.tk.call(self.command,w._options(self.options)) _tkinter.TclError: bad文件类型“,应该是"typeName { ?>extensions .} ?{macType ?macTypes .}?“在3.937秒内完成
我试着调试我的代码,看看是什么问题,但这是一行
import getpass
import tkinter
from tkinter import filedialog
def SelectOsuFile():
osu_file = filedialog.askopenfilename(initialdir="C:\\User\\" + username + "\\Desktop", filetypes=('*.osu'))
return osu_file
def SelectOsrFile():
osr_file = filedialog.askopenfilename(initialdir="C:\\User\\" + username + "\\Desktop", filetypes=('*.osr'))
return osr_file
def SelectDirectory():
directory = filedialog.askdirectory(initialdir="C:\\User\\" + username + "\\Desktop")
def Start():
start = print('Start')
username = getpass.getuser()
root = tkinter.Tk()
root.geometry('480x360')
buttonOsuExtension = tkinter.Button(root, text='Select .osu file', command=SelectOsuFile)
buttonOsrExtension = tkinter.Button(root, text='Select .osr file', command=SelectOsrFile)
buttonSkinFolder = tkinter.Button(root, text='Select skin folder', command=SelectDirectory)
buttonStart = tkinter.Button(root, text='Start', command=Start)
buttonOsuExtension.pack()
buttonOsrExtension.pack()
buttonSkinFolder.pack()
buttonStart.pack()
root.mainloop()发布于 2019-08-08 03:25:29
正如错误所述,您应该将typeName和extension的列表传递给filetypes参数,如下所示:
filetypes=(("OSU files", "*.osu"),)https://stackoverflow.com/questions/57399716
复制相似问题