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