python文件选择:tkFileDialog 基础

来源:互联网 发布:网络棋牌游戏币怎么改 编辑:程序博客网 时间:2024/05/21 12:43

看了下Tkinter的文档,对于Pop-up dialog有三类,现在用到的是tkFileDialog

tkFileDialog有两种形式: 

一个是.askopenfilename(option=value, ...) 这个是"打开"对话框

另一个是:asksaveasfilename(option=value, ...) 这个是另存为对话框


option参数如下:

defaultextension = s   默认文件的扩展名

filetypes = [(label1, pattern1), (label2, pattern2), ...]   设置文件类型下拉菜单里的的选项

initialdir = D  对话框中默认的路径

initialfile = F  对话框中初始化显示的文件名

parent = W  父对话框(由哪个窗口弹出就在哪个上端)

title = T  弹出对话框的标题

如果选中文件的话,确认后会显示文件的完整路径,否则单击取消的话会返回空字符串

#coding=UTF-8# __author__ = '极致'import Tkinter, Tkconstants, tkFileDialogclass TkFileDialogExample(Tkinter.Frame):    def __init__(self, root):        Tkinter.Frame.__init__(self, root)        # options for buttons        button_opt = {'fill': Tkconstants.BOTH, 'padx': 5, 'pady': 5}        # define buttons        Tkinter.Button(self, text='askopenfile', command=self.askopenfile).pack(**button_opt)        Tkinter.Button(self, text='askopenfilename', command=self.askopenfilename).pack(**button_opt)        Tkinter.Button(self, text='asksaveasfile', command=self.asksaveasfile).pack(**button_opt)        Tkinter.Button(self, text='asksaveasfilename', command=self.asksaveasfilename).pack(**button_opt)        Tkinter.Button(self, text='askdirectory', command=self.askdirectory).pack(**button_opt)        # define options for opening or saving a file        self.file_opt = options = {}        options['defaultextension'] = '.txt'        options['filetypes'] = [('all files', '.*'), ('text files', '.txt')]        options['initialdir'] = 'C:\\'        options['initialfile'] = 'myfile.txt'        options['parent'] = root        options['title'] = 'This is a title'        # This is only available on the Macintosh, and only when Navigation Services are installed.        #options['message'] = 'message'        # if you use the multiple file version of the module functions this option is set automatically.        #options['multiple'] = 1        # defining options for opening a directory        self.dir_opt = options = {}        options['initialdir'] = 'C:\\'        options['mustexist'] = False        options['parent'] = root        options['title'] = 'This is a title'    def askopenfile(self):        """Returns an opened file in read mode."""        return tkFileDialog.askopenfile(mode='r', **self.file_opt)    def askopenfilename(self):        """Returns an opened file in read mode.        This time the dialog just returns a filename and the file is opened by your own code.        """        # get filename        filename = tkFileDialog.askopenfilename(**self.file_opt)        # open file on your own        if filename:            return open(filename, 'r')    def asksaveasfile(self):        """Returns an opened file in write mode."""        return tkFileDialog.asksaveasfile(mode='w', **self.file_opt)    def asksaveasfilename(self):        """Returns an opened file in write mode.        This time the dialog just returns a filename and the file is opened by your own code.        """        # get filename        filename = tkFileDialog.asksaveasfilename(**self.file_opt)        # open file on your own        if filename:            return open(filename, 'w')    def askdirectory(self):        """Returns a selected directoryname."""        return tkFileDialog.askdirectory(**self.dir_opt)if __name__ == '__main__':    root = Tkinter.Tk()    TkFileDialogExample(root).pack()    root.mainloop()


原创粉丝点击