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)
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))
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!')
def __ask__(self): kw = { "title" : self.title.get(), "filetypes": [ (filter_name.get(), filter) for (filter_name, filter) in \ self.filetypes ] } return asksaveasfilename(**kw)
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))
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))
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'))
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))
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))
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
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))
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))
def on_save_as(self): filename = asksaveasfilename(filetypes=[('All types of files', '*.*')]) if not filename: return with code_printer: self.save(filename)
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)
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))
def save_wad(self): self.wad.to_file(tkFileDialog.asksaveasfilename())
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