名称错误:未定义名称“tkFileDialog”

2024-05-29 00:13:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用Tkinter并让用户选择某个文件。我的代码看起来是这样的(我刚从Tkinter开始)

from Tkinter import *
from tkFileDialog import *


root = Tk()

root.wm_title("Pages to PDF")
root.wm_iconbitmap('icon.ico')
w = Label(root, text="Please choose a .pages file to convert.") 
y = tkFileDialog.askopenfilename(parent=root)
y.pack()
w.pack()

root.mainloop()

当我运行程序时,我会收到一个错误,上面写着:

NameError: name 'tkFileDialog' is not defined

我在网上找到了一些配置。它们都没有起作用,但每次都是同样的基本错误。我该怎么解决?


Tags: 文件to代码用户fromimporttitletkinter
3条回答

似乎是空间名称问题。 试试这个:

try:
    import Tkinter as tk
    import tkFileDialog as fd
except:
    import tkinter as tk
    from tkinter import filedialog as fd

def NewFile():
    print("New File!")
def OpenFile():
    name = fd.askopenfilename()
    print(name)
def About():
    print("This is a simple example of a menu")

class myGUI:
    def __init__(self, root):
        self.root = root

        self.canvas = tk.Canvas(self.root,
                                borderwidth=1,
                                relief="sunken")
        self.canvas.pack( fill=tk.BOTH, expand=tk.YES)

        self.menu = tk.Menu(self.root)
        self.root.config(menu=self.menu)
        self.helpmenu = tk.Menu(self.menu)

        self.filemenu = tk.Menu( self.menu )
        self.menu.add_cascade(label="File", menu=self.filemenu)
        self.filemenu.add_command(label="New", command=NewFile)
        self.filemenu.add_command(label="Open...", command=OpenFile)
        self.filemenu.add_separator()
        self.filemenu.add_command(label="Exit", command=root.destroy)

root = tk.Tk()   
root.title('appName')
myGUI(root)
root.mainloop()    

您正在从tkFileDialog模块导入所有内容,因此不需要在前缀tkFileDialog.askopenfilename()前编写模块名,只需在askopenfilename()前编写模块名,例如:

from Tkinter import *
from tkFileDialog import *
root = Tk()
root.wm_title("Pages to PDF")

w = Label(root, text="Please choose a .pages file to convert.") 
fileName = askopenfilename(parent=root)

w.pack()
root.mainloop()

试试这个:

from Tkinter import *

import tkFileDialog

root = Tk()
root.wm_title("Pages to PDF")
root.wm_iconbitmap('icon.ico')
w = Label(root, text="Please choose a .pages file to convert.") 
y = tkFileDialog.askopenfilename(parent=root)
y.pack()
w.pack()
root.mainloop()

相关问题 更多 >

    热门问题