【问题标题】:How to fix askopenfilename error at line 6如何修复第 6 行的 askopenfilename 错误
【发布时间】:2019-12-15 09:42:39
【问题描述】:

我开始使用名为 Tkinter 的模块对 GUI 进行编码,但在使用 askopenfilename 语句按钮选择文件时,我的代码仍然有错误。 这是错误

Tkinter 回调异常 回溯(最近一次通话最后): 调用中的文件“C:\Users\Admin\AppData\Local\Programs\Python\Python37->32\lib\tkinter__init__.py”,第 1705 行 return self.func(args) SelectOsuFile 中的文件“C:\osu2mp4\src\osr2mp4-gui.py”,第 6 行 osu_file = filedialog.askopenfilename(initialdir="C:\User\" + username >+ "\Desktop", filetypes=('.osu'),) 文件“C:\Users\Admin\AppData\Local\Programs\Python\Python37->32\lib\tkinter\filedialog.py”,第 375 行,在 askopenfilename 返回 Open(**options).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 file type "", 应该是 "typeName {extension ?>extensions ...?} ?{macType ?macTypes ...?}?" [3.937s 完成]

我试图调试我的代码以查看问题,但它是一行

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()

【问题讨论】:

    标签: python user-interface tkinter


    【解决方案1】:

    正如错误所说,您应该将typeNameextension 的列表传递给filetypes 参数,如下所示:

    filetypes=(("OSU files", "*.osu"),)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 2019-10-05
      • 2021-03-09
      • 1970-01-01
      相关资源
      最近更新 更多