Пример #1
0
    def _on_save_mat_file(self):
        filename = asksaveasfilename(filetypes=[('Matlab mat files', '*.mat')])
        if not filename:
            return
            
        def linkFunc(filename):
            with code_printer:
                clipboard   = Scripting.root_node.clipboard
                clipboard.clear()
                clipboard.write(auto_subs('load $filename'))
        with code_printer:
            self.__topwin.save_mat_file(filename)
            tip = [
                {
                    'type':'text', 
                    'content':auto_subs('''The correlation matrix has been saved in the mat file "$filename" successully.
You can extract the data in Matlab using the following command:''')
                },
                {
                    'type':'link', 
                    'content':auto_subs('>> load $filename'),
                    'command':lambda dumb: linkFunc(filename=filename)
                },
                {
                    'type':'text', 
                    'content':'''and variable named "R" will appear in your Matlab workspace.
(Click the underlined Matlab command and copy it to the clipboard)'''
                }
            ]
            self._app.print_tip(tip)  
Пример #2
0
    def save_csv(self, *args):
        initialdir = plt.rcParams.get('savefig.directory', '')
        initialdir = os.path.expanduser(initialdir)
        fname = tkinter_tkfiledialog.asksaveasfilename(
            master=self.window,
            title='Save the pixel drill',
            filetypes=[('CSV', '*.csv')],
            defaultextension='',
            initialdir=initialdir,
            initialfile='pixeldrill.csv',
        )

        if fname == "" or fname == ():
            return
        else:
            if initialdir == '':
                plt.rcParams['savefig.directory'] = initialdir
            else:
                plt.rcParams['savefig.directory'] = os.path.dirname(
                    six.text_type(fname))
            try:
                ds = pd.DataFrame(data=ts, index=times, columns=bands)
                ds.to_csv(fname)

            except Exception as e:
                tkinter_messagebox.showerror("Error saving file", str(e))
Пример #3
0
 def dump_log(self):
     """Dumps the contents of the text widget to a text file"""
     destination = tkFileDialog.asksaveasfilename(defaultextension='.txt')
     text = self.text_box.get(1.0,Tk.END)
     if destination:
         with open(destination,'w') as log:
             log.write(text)
             tkMessageBox.showinfo('Success','Log saved successfully!')
Пример #4
0
    def __ask__(self):
        kw = {
            "title" : self.title.get(),
            "filetypes": [
                (filter_name.get(), filter) for (filter_name, filter) in \
                    self.filetypes
            ]
        }

        return asksaveasfilename(**kw)
Пример #5
0
 def ev_SaveAs(self):
     "Event handler for Save As of output PSFs"
     filename = tkFileDialog.asksaveasfilename(
         initialfile='PSF_%s_%s.fits' % (self.iname, self.filter),
         filetypes=[('FITS', '.fits')],
         defaultextension='.fits',
         parent=self.root)
     if len(filename) > 0:
         self.PSF_HDUlist.writeto(filename)
         print("Saved to {}".format(filename))
Пример #6
0
 def ev_SaveAs(self):
     "Event handler for Save As of output PSFs"
     filename = tkFileDialog.asksaveasfilename(
             initialfile='PSF_%s_%s.fits' %(self.iname, self.filter),
             filetypes=[('FITS', '.fits')],
             defaultextension='.fits',
             parent=self.root)
     if len(filename) > 0:
         self.PSF_HDUlist.writeto(filename)
         print("Saved to {}".format(filename))
Пример #7
0
 def _saveToFile(self, fn=None):
     """
   Save state to a pickle file.
 """
     import pickle
     pfe = self._pickleFileExtension()
     if fn is None:
         # Request a filename
         import six.moves.tkinter_tkfiledialog as tkFileDialog
         fn = tkFileDialog.asksaveasfilename(defaultextension=pfe, title="Save as pickle file", \
                                             filetypes=[("pickle files", "*"+pfe)])
     pickle.dump(self._getState(), self._fileOpenMethod()(fn, 'w'))
Пример #8
0
 def _saveToFile(self, fn=None):
   """
     Save state to a pickle file.
   """
   import pickle
   pfe = self._pickleFileExtension()
   if fn is None:
     # Request a filename
     import six.moves.tkinter_tkfiledialog as tkFileDialog
     fn = tkFileDialog.asksaveasfilename(defaultextension=pfe, title="Save as pickle file", \
                                         filetypes=[("pickle files", "*"+pfe)])
   pickle.dump(self._getState(), self._fileOpenMethod()(fn, 'w'))
Пример #9
0
    def save_figure(self, *args):
        from six.moves import tkinter_tkfiledialog, tkinter_messagebox
        filetypes = self.canvas.get_supported_filetypes().copy()
        default_filetype = self.canvas.get_default_filetype()

        # Tk doesn't provide a way to choose a default filetype,
        # so we just have to put it first
        default_filetype_name = filetypes[default_filetype]
        del filetypes[default_filetype]

        sorted_filetypes = list(six.iteritems(filetypes))
        sorted_filetypes.sort()
        sorted_filetypes.insert(0, (default_filetype, default_filetype_name))

        tk_filetypes = [(name, '*.%s' % ext)
                        for (ext, name) in sorted_filetypes]

        # adding a default extension seems to break the
        # asksaveasfilename dialog when you choose various save types
        # from the dropdown.  Passing in the empty string seems to
        # work - JDH!
        #defaultextension = self.canvas.get_default_filetype()
        defaultextension = ''
        initialdir = rcParams.get('savefig.directory', '')
        initialdir = os.path.expanduser(initialdir)
        initialfile = self.canvas.get_default_filename()
        fname = tkinter_tkfiledialog.asksaveasfilename(
            master=self.window,
            title='Save the figure',
            filetypes=tk_filetypes,
            defaultextension=defaultextension,
            initialdir=initialdir,
            initialfile=initialfile,
        )

        if fname == "" or fname == ():
            return
        else:
            if initialdir == '':
                # explicitly missing key or empty str signals to use cwd
                rcParams['savefig.directory'] = initialdir
            else:
                # save dir for next time
                rcParams['savefig.directory'] = os.path.dirname(
                    six.text_type(fname))
            try:
                # This method will handle the delegation to the correct type
                self.canvas.print_figure(fname)
            except Exception as e:
                tkinter_messagebox.showerror("Error saving file", str(e))
Пример #10
0
    def save_figure(self, *args):
        from six.moves import tkinter_tkfiledialog, tkinter_messagebox
        filetypes = self.canvas.get_supported_filetypes().copy()
        default_filetype = self.canvas.get_default_filetype()

        # Tk doesn't provide a way to choose a default filetype,
        # so we just have to put it first
        default_filetype_name = filetypes[default_filetype]
        del filetypes[default_filetype]

        sorted_filetypes = list(six.iteritems(filetypes))
        sorted_filetypes.sort()
        sorted_filetypes.insert(0, (default_filetype, default_filetype_name))

        tk_filetypes = [(name, '*.%s' % ext)
                        for (ext, name) in sorted_filetypes]

        # adding a default extension seems to break the
        # asksaveasfilename dialog when you choose various save types
        # from the dropdown.  Passing in the empty string seems to
        # work - JDH!
        #defaultextension = self.canvas.get_default_filetype()
        defaultextension = ''
        initialdir = rcParams.get('savefig.directory', '')
        initialdir = os.path.expanduser(initialdir)
        initialfile = self.canvas.get_default_filename()
        fname = tkinter_tkfiledialog.asksaveasfilename(
            master=self.window,
            title='Save the figure',
            filetypes=tk_filetypes,
            defaultextension=defaultextension,
            initialdir=initialdir,
            initialfile=initialfile,
        )

        if fname == "" or fname == ():
            return
        else:
            if initialdir == '':
                # explicitly missing key or empty str signals to use cwd
                rcParams['savefig.directory'] = initialdir
            else:
                # save dir for next time
                rcParams['savefig.directory'] = os.path.dirname(
                    six.text_type(fname))
            try:
                # This method will handle the delegation to the correct type
                self.canvas.print_figure(fname)
            except Exception as e:
                tkinter_messagebox.showerror("Error saving file", str(e))
Пример #11
0
    def save_movie(self, *args):
        filetypes = self.canvas.get_supported_filetypes().copy()
        default_filetype = self.canvas.get_default_filetype()

        default_filetype_name = filetypes[default_filetype]
        del filetypes[default_filetype]

        sorted_filetypes = list(six.iteritems(filetypes))
        sorted_filetypes.sort()
        sorted_filetypes.insert(0, (default_filetype, default_filetype_name))

        defaultextension = ''
        initialdir = plt.rcParams.get('savefig.directory', '')
        initialdir = os.path.expanduser(initialdir)
        initialfile = 'movie.mp4'
        fname = tkinter_tkfiledialog.asksaveasfilename(
            master=self.window,
            title='Save the stack',
            filetypes=[('MPEG 4', '*.mp4')],
            defaultextension=defaultextension,
            initialdir=initialdir,
            initialfile=initialfile,
        )

        if fname == "" or fname == ():
            return
        else:
            if initialdir == '':
                plt.rcParams['savefig.directory'] = initialdir
            else:
                plt.rcParams['savefig.directory'] = os.path.dirname(
                    six.text_type(fname))
            try:
                writer = anim.writers['ffmpeg']
                mwriter = writer(
                    fps=1,
                    bitrate=0,
                    codec='h264',
                    # extra_args=['-crf', '23', '-pix_fmt' 'yuv420p'],
                    metadata={})
                with mwriter.saving(mainfig, fname, 140):
                    print(' '.join(mwriter._args()))  # pylint: disable=protected-access
                    for i in range(ntime):
                        changeimg(i)
                        mwriter.grab_frame()
            except Exception as e:
                tkinter_messagebox.showerror("Error saving file", str(e))
Пример #12
0
    def __init__(self, *args, **kwargs):
        pil_image = kwargs.pop('pil_image')
        photo = ImageTk.PhotoImage(pil_image)
        self.__photo = photo
        self.__origin_image = pil_image
        self.__zoomed_image = pil_image
        Frame.__init__(self, *args, **kwargs)

        frame = Frame(self)
        frame.pack(fill='x')
        
        save_dlg = lambda: asksaveasfilename(filetypes=[('JPEG', '.jpg'), ('PNG', '.png')], defaultextension='.jpg')        
                        
        def on_save(image):
            filename = save_dlg()
            if filename:
                image.save(filename)
        
        Label(frame, text=eval_format('id={id(self)}')).pack(side='left')
        Button(frame, text='Save Origin', command=lambda:on_save(self.__origin_image)).pack(side='left')
        Button(frame, text='Save Zoomed', command=lambda:on_save(self.__zoomed_image)).pack(side='left')

        scale = Scale(frame, from_=0, to=100, orient='horizontal', value=100)
        scale.pack(side='left')
        zoomed_label = Label(frame, text='100%')
        zoomed_label.pack(side='left')
        
        self.__label = label = Label(self, image=photo)
        label.pack(expand=YES, fill=BOTH)
        
        def on_scale(val):
            val = float(val)
            width, height = self.__origin_image.size
            width = int(width * val / 100)
            height = int(height * val / 100)
            zoomed_image = self.__origin_image.resize((width, height), 
                                                      Image.ANTIALIAS)
            self.__zoomed_image = zoomed_image
            self.__photo = ImageTk.PhotoImage(zoomed_image)
            self.__label['image'] = self.__photo
            zoomed_label['text'] = '{}%'.format(int(val))
            
        scale['command'] = on_scale
Пример #13
0
    def save_figure(self, *args):
        from six.moves import tkinter_tkfiledialog, tkinter_messagebox
        filetypes = self.canvas.get_supported_filetypes().copy()
        default_filetype = self.canvas.get_default_filetype()

        # Tk doesn't provide a way to choose a default filetype,
        # so we just have to put it first
        default_filetype_name = filetypes.pop(default_filetype)
        sorted_filetypes = ([(default_filetype, default_filetype_name)] +
                            sorted(six.iteritems(filetypes)))
        tk_filetypes = [(name, '*.%s' % ext) for ext, name in sorted_filetypes]

        # adding a default extension seems to break the
        # asksaveasfilename dialog when you choose various save types
        # from the dropdown.  Passing in the empty string seems to
        # work - JDH!
        #defaultextension = self.canvas.get_default_filetype()
        defaultextension = ''
        initialdir = os.path.expanduser(rcParams['savefig.directory'])
        initialfile = self.canvas.get_default_filename()
        fname = tkinter_tkfiledialog.asksaveasfilename(
            master=self.window,
            title='Save the figure',
            filetypes=tk_filetypes,
            defaultextension=defaultextension,
            initialdir=initialdir,
            initialfile=initialfile,
        )

        if fname in ["", ()]:
            return
        # Save dir for next time, unless empty str (i.e., use cwd).
        if initialdir != "":
            rcParams['savefig.directory'] = (os.path.dirname(
                six.text_type(fname)))
        try:
            # This method will handle the delegation to the correct type
            self.canvas.figure.savefig(fname)
        except Exception as e:
            tkinter_messagebox.showerror("Error saving file", str(e))
Пример #14
0
    def save_figure(self, *args):
        from six.moves import tkinter_tkfiledialog, tkinter_messagebox
        filetypes = self.canvas.get_supported_filetypes().copy()
        default_filetype = self.canvas.get_default_filetype()

        # Tk doesn't provide a way to choose a default filetype,
        # so we just have to put it first
        default_filetype_name = filetypes.pop(default_filetype)
        sorted_filetypes = ([(default_filetype, default_filetype_name)]
                            + sorted(six.iteritems(filetypes)))
        tk_filetypes = [(name, '*.%s' % ext) for ext, name in sorted_filetypes]

        # adding a default extension seems to break the
        # asksaveasfilename dialog when you choose various save types
        # from the dropdown.  Passing in the empty string seems to
        # work - JDH!
        #defaultextension = self.canvas.get_default_filetype()
        defaultextension = ''
        initialdir = os.path.expanduser(rcParams['savefig.directory'])
        initialfile = self.canvas.get_default_filename()
        fname = tkinter_tkfiledialog.asksaveasfilename(
            master=self.window,
            title='Save the figure',
            filetypes=tk_filetypes,
            defaultextension=defaultextension,
            initialdir=initialdir,
            initialfile=initialfile,
            )

        if fname in ["", ()]:
            return
        # Save dir for next time, unless empty str (i.e., use cwd).
        if initialdir != "":
            rcParams['savefig.directory'] = (
                os.path.dirname(six.text_type(fname)))
        try:
            # This method will handle the delegation to the correct type
            self.canvas.figure.savefig(fname)
        except Exception as e:
            tkinter_messagebox.showerror("Error saving file", str(e))
Пример #15
0
 def on_save_as(self):        
     filename    = asksaveasfilename(filetypes=[('All types of files', '*.*')])
     if not filename:
         return
     with code_printer:
         self.save(filename)
Пример #16
0
    def export_csv(self, *args):
        to_lock = [
            self.login_button,
            self.course_listbox,
            self.assignment_listbox,
            self.readtxt_button,
            self.dopublish_button,
            self.exportcsv_button,
        ]

        def target(course_id):
            rows = []
            all_right = True
            for o in self.students:
                if o['submitted']:
                    try:
                        response = self.opener.open(
                            self.url_homeworkdetail.format(
                                rec_id=o['rec_id'], course_id=course_id))
                        assert 200 == response.code
                        the_page = self.html2unicode(response.read())
                        soup = BeautifulSoup(the_page, 'html.parser')
                        student_id = soup.select(
                            '#post_rec_student_id')[0]['value'].strip()
                        assert student_id == o['id']
                        answer = soup.select('textarea[readonly]')[0].text
                        mark = soup.select(
                            '#post_rec_mark')[0]['value'].strip()
                        reply = soup.select('#post_rec_reply_detail')[0].text
                        rows.append([
                            o['id'],
                            o['name'],
                            answer.strip(),
                            mark,
                            reply.strip(),
                        ])
                    except:
                        rows.append([
                            o['id'],
                            o['name'],
                        ])
                        all_right = False
            if not all_right:
                q.put(('读取详细评语失败', 'open homework rec failed'))
                return
            with f:
                writer = csv.writer(f, dialect='excel')
                writer.writerow([
                    'id',
                    'name',
                    'answer',
                    'mark',
                    'reply',
                ])
                if six.PY3:
                    writer.writerows(rows)
                else:
                    writer.writerows([[s.encode('utf-8') for s in row]
                                      for row in rows])
            q.put(None)

        try:
            fn = tkfiledialog.asksaveasfilename(
                initialdir=self.dirname,
                defaultextension='*.csv',
                filetypes=(('CSV file', '*.csv'), ('All types', '*.*')))
            if not fn:
                return
            if six.PY3:
                f = open(fn, 'w', encoding='utf-8-sig', newline='')
            else:
                f = open(fn, 'wb')
                f.write(codecs.BOM_UTF8)
        except IOError as e:
            self.info(str(e), 'IOError')
            return
        self.dirname = os.path.dirname(f.name)
        for elem in to_lock:
            elem.config(state=DISABLED)
        q = queue.Queue()

        def update(q):
            try:
                msg = q.get_nowait()
                if msg is not None:
                    self.info(*msg)
                for elem in to_lock:
                    elem.config(state=NORMAL)
            except queue.Empty:
                self.after(100, update, q)

        t = threading.Thread(target=target, args=(self.course_id, ))
        t.start()
        self.after(100, update, q)
Пример #17
0
    def save_figure(self, *args):
        filetypes = self.canvas.get_supported_filetypes().copy()
        default_filetype = self.canvas.get_default_filetype()

        default_filetype_name = filetypes[default_filetype]
        del filetypes[default_filetype]

        sorted_filetypes = list(six.iteritems(filetypes))
        sorted_filetypes.sort()
        sorted_filetypes.insert(0, (default_filetype, default_filetype_name))

        initialdir = plt.rcParams.get('savefig.directory', '')
        initialdir = os.path.expanduser(initialdir)
        initialfile = 'pixeldrill.pdf'
        fname = tkinter_tkfiledialog.asksaveasfilename(
            master=self.window,
            title='Save the pixel drill',
            filetypes=[('PNG', '*.png'), ('PDF', '*.pdf')],
            defaultextension='',
            initialdir=initialdir,
            initialfile=initialfile,
        )

        if fname == "" or fname == ():
            return
        else:
            if initialdir == '':
                plt.rcParams['savefig.directory'] = initialdir
            else:
                plt.rcParams['savefig.directory'] = os.path.dirname(
                    six.text_type(fname))
            try:
                fig = plt.figure(figsize=(6, 4.5))

                ax3 = fig.add_subplot(211, xmargin=0, ymargin=0)
                ax3.set_xticks(range(nband))
                ax3.set_xticklabels(bands)
                ax3.set_title('Spectral profiles through time')
                ax3.set_xlim((-0.2, nband - 0.8))
                ax3.set_ylim((0, np.nanmax(data)))
                ax3.xaxis.grid(color='black', linestyle='dotted')

                box = ax3.get_position()
                ax3.set_position([
                    box.x0, box.y0 + box.height * 0.1, box.width,
                    box.height * 0.8
                ])

                tindex = range(1, len(times) + 1)

                ax4 = fig.add_subplot(212, xmargin=0, ymargin=0)
                ax4.set_title('Band time series')

                ax4.set_xticks(tindex)
                ax4.set_xlim(0.9, tindex[-1] + 0.1)
                ax4.set_ylim((0, np.nanmax(data)))

                for i, p in enumerate(ts.T):
                    ax3.plot(range(nband), p, c='k')

                for i in range(ts.shape[0]):
                    tt = ts[i, :]
                    ax4.plot(tindex,
                             tt,
                             lw=1,
                             marker='.',
                             linestyle='-',
                             color=colors[i],
                             label=bands[i])

                ax4.legend(loc='upper center',
                           bbox_to_anchor=(0.5, -0.2),
                           labelspacing=0.8,
                           handletextpad=0,
                           handlelength=2,
                           borderaxespad=0,
                           ncol=nband,
                           columnspacing=0.5)

                fig.savefig(fname, bbox_inches='tight')

                # plt.close(fig)

            except Exception as e:
                tkinter_messagebox.showerror("Error saving file", str(e))
Пример #18
0
 def save_wad(self):
     self.wad.to_file(tkFileDialog.asksaveasfilename())
Пример #19
0
 def support_ask_saveas_filename(self, arg, **kwargs):
     if arg is self.root_node.constants.ASK_SAVEAS_FILENAME:
         filename = asksaveasfilename(**kwargs)
         arg = filename
         self._print_actual_value(self.root_node.constants.ASK_SAVEAS_FILENAME, arg)
     return arg