5

出于某种原因,默认文件类型会根据我是使用菜单打开文件对话框还是使用 Ctrl+O 热键而改变。为什么?

from Tkinter import *
import tkFileDialog

FILEOPENOPTIONS = dict(defaultextension='.bin',
                       filetypes=[('Bin file','*.bin'), ('All files','*.*')])

class TestGUI(Tk):
    def __init__(self):
        Tk.__init__(self)
        self.title('Test')
        menu = self.menubar = Menu(self)
        fmenu = self.filemenu = Menu(menu, tearoff=0)
        menu.add_cascade(label='File', underline=0, menu=fmenu)
        fmenu.add_command(label="Open", underline=0,
                          accelerator='Ctrl+O',
                          command=self.fopendialog)
        self.config(menu=menu)
        self.bind_all('<Control-o>', self.fopendialog)

    def fopendialog(self, event=None):
        print repr(tkFileDialog.askopenfilename(parent=self,
                                                **FILEOPENOPTIONS))

if __name__ == "__main__":
    test = TestGUI()
    test.mainloop()
4

1 回答 1

4

我遇到了同样的问题,但我通过将默认文件扩展名放在字典的最后来修复它。

像这样:

FILEOPENOPTIONS = dict(defaultextension='.bin',
                  filetypes=[('All files','*.*'), ('Bin file','*.bin')])

请参阅此页面上的示例以供参考。

于 2014-03-21T12:26:00.537 回答