Python小白进化之路004_'tkinter' has no attribute 'filedialog'
本帖最后由 大头目 于 2019-8-14 10:18 编辑最近想做个小交互界面,遇见个没碰到过的问题:
AttributeError: module 'tkinter' has no attribute 'filedialog'
把 tkinter全部插入居然用不了filedialog(小甲鱼的旧版书内没有写到这个问题)
百度查到:
这说明filedialog是tkinter模块下的一个子模块,并不是他的函数和性质。不能直接去调用filedialog模块下的函数;需要引入子模块filedialog,再去使用它的函数。
这个问题提示我们使用python的过程中,需要注意子模块和函数的性质。
同时这也是类中的相关知识,子模块就是子类,函数是父类中的函数。
from tkinter import *
from tkinter import filedialog #filedialog需要单独插入,类似于子类的存在
root = Tk()
root.title('图片搜索小程序')
Label(root,text = '搜索文件夹:').grid(row = 0)
Label(root,text = '输出文件夹:').grid(row = 1)
e1 = Entry(root,width = 50)
e2 = Entry(root,width = 50)
e1.grid(row = 0, column = 1, padx = 10, pady = 10)
e2.grid(row = 1, column = 1, padx = 10, pady = 10)
def openfile():
fileName = filedialog.askopenfilename()
taget = e1.get()
output = e2.get()
print('选取样本:',fileName)
print('搜索文件夹:',taget)
print('输出文件夹:',output)
# e1.delete(0,END)
# e2.delete(0,END)
Button(root, text = '选取样本', width = 10, command = openfile)\
.grid(sticky = W, padx = 20, pady = 10)
#Button(root, text = '退出', width = 10, command = root.quit)\
#.grid(row = 3, column = 1, sticky = W, padx = 10, pady = 5)
mainloop() #实际测试如下方式也可以
import tkinter as tk
def openfile():
global input_path
input_path = tk.filedialog.askopenfilename()
if input_path:
tk.messagebox.showinfo('Return','选择的输入路径为%s' % input_path)
else:
tk.messagebox.showinfo('Return','您还未选择输入路径') 另外在设置窗口位置是小甲鱼由于是from tkinter import *,导致sticky = W参数变量设置一下子没看懂W是什么东西。其实就是sticky = tk.W,第一次碰到脑子没转过弯来! 学习
页:
[1]