当名称返回主页时,如何检查使用Tkinter打开的文件名?

时间:2016-06-02 18:13:11

标签: python tkinter

我正在尝试检查使用Tkinter和tkFileDialog选择的文件的文件名,但程序总是崩溃,即使我有方法预加载要使用的字符串并注释掉打开的文件对话框。此外,打开文件对话框打开两次,第一次是在我第一次运行程序时,然后在我退出第一个对话框时再次打开,当我尝试关闭那个时,程序崩溃了。我也尝试使用整个目录作为文件名的字符串,但得到了相同的结果。这是我正在使用的相当简单的代码,任何想法导致问题的原因是什么?

from Tkinter import *
import tkFileDialog




def bla():
    filename = tkFileDialog.askopenfilename()
    if filename:
        print filename
        return filename
    else:
        print 'file not opened'




def main():


    if bla()=='somepic.bmp':
        print 'yes'
    else:
        print 'no'
main()
errmsg = 'Error!'
Button(text='File Open', command=bla).pack(fill='x')

更新:发生的事情的图片,这是立即出现的,而我只想要一个对话框(小的,打开较大的一个,也缺少按钮)enter image description here

更新:运行时打开的两个对话框不再有问题,但如果您尝试退出第一个对话框则打开2:

from Tkinter import *
import tkFileDialog
def callback():
    filename = tkFileDialog.askopenfilename()
    if filename:
        print filename
        return filename
    else:
        print 'file not opened'
def main():
    mainloop()
    if callback().endswith('sen30.bmp'):
        print 'yes'
    else:
        print 'no'
Button(text='File Open', command=callback).pack(fill='x')

errmsg = 'Error!'
main()

我认为它停留在mainloop中并且从未到达if语句。如何从主循环中获取它?

0 个答案:

没有答案