zltzlt 发表于 2020-7-28 11:07:42

Python FAQ 047 from tkinter import * 为什么导入不了 filedialog

Python FAQ 047 from tkinter import * 为什么导入不了 filedialog

问题

为什么我运行下面的代码,点击 “打开文件” 就会报错,显示 filedialog 没有定义?

from tkinter import *

root = Tk()


def callback():
    fileName = filedialog.askopenfilename()
    print(fileName)


Button(root, text="打开文件", command=callback).pack()

mainloop()

解答

tkinter 是一个包,from tkinter import * 只会将 tkinter 包中 __init__.py 模块的所有内容导入。

如果要导入 tkinter 的其他模块(例如 filedialog),需要另外用 from 导入,像这样:

from tkinter import *
from tkinter import filedialog

root = Tk()


def callback():
    fileName = filedialog.askopenfilename()
    print(fileName)


Button(root, text="打开文件", command=callback).pack()

mainloop()

liuzhengyuan 发表于 2020-7-28 16:25:56

现在好像 MessageBox 也要 from tkinter import MessageBox 了

zltzlt 发表于 2020-7-28 16:26:46

liuzhengyuan 发表于 2020-7-28 16:25
现在好像 MessageBox 也要 from tkinter import MessageBox 了

所有模块都一样

陈尚涵 发表于 2020-7-28 18:46:44

额,你这都发这种帖子发了多少个了{:10_250:}{:10_250:}
页: [1]
查看完整版本: Python FAQ 047 from tkinter import * 为什么导入不了 filedialog