tkFileDialog的askopenfilename方法中的默认文件类型

2024-04-16 23:26:05 发布

您现在位置:Python中文网/ 问答频道 /正文

由于某些原因,默认文件类型会根据我是使用菜单打开文件对话框,还是使用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()

Tags: importselfaddbininitdeftkmenu
1条回答
网友
1楼 · 发布于 2024-04-16 23:26:05

我也遇到过同样的问题,但我把默认的文件扩展名放在字典的最后一个,从而解决了这个问题。

像这样:

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

请参阅this page上的示例以供参考。

相关问题 更多 >