1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
"""
.. moduleauthor:: easygui developers and Stephen Raymond Ferg
.. default-domain:: py
.. highlight:: python
Version |release|
"""
import os
try:
from . import utils as ut
from . import fileboxsetup as fbs
except (SystemError, ValueError, ImportError):
import utils as ut
import fileboxsetup as fbs
try:
import tkinter as tk # python 3
import tkinter.font as tk_Font
except:
import Tkinter as tk # python 2
import tkFont as tk_Font
# -------------------------------------------------------------------
# filesavebox
# -------------------------------------------------------------------
def filesavebox(msg=None, title=None, default="", filetypes=None):
r"""
A file to get the name of a file to save.
Returns the name of a file, or None if user chose to cancel.
The "default" argument should contain a filename (i.e. the
current name of the file to be saved). It may also be empty,
or contain a filemask that includes wildcards.
The "filetypes" argument works like the "filetypes" argument to
fileopenbox.
:param str msg: the msg to be displayed.
:param str title: the window title
:param str default: default filename to return
:param object filetypes: filemasks that a user can choose, e.g. " \*.txt"
:return: the name of a file, or None if user chose to cancel
"""
localRoot = tk.Tk()
localRoot.withdraw()
initialbase, initialfile, initialdir, filetypes = fbs.fileboxSetup(
default, filetypes)
f = ut.tk_FileDialog.asksaveasfilename(
parent=localRoot,
title=ut.getFileDialogTitle(
msg, title),
initialfile=initialfile, initialdir=initialdir,
filetypes=filetypes
)
localRoot.destroy()
if not f:
return None
return os.path.normpath(f)
if __name__ == '__main__':
print("Hello from file save box")
ret_val = filesavebox("Please select a file to save to", "My File Save dialog")
print("Return value is:{}".format(ret_val))
|