def _savecuts(self, event=None): root = Tk() root.withdraw() csvfile = asksaveasfile(mode='w',defaultextension='.csv',title='Choose a file to save cuts to') root.destroy() if csvfile: pd.DataFrame(self.gpacuts).to_csv(csvfile)
def _savegrades(self, event=None): sorted_students = self.student_list.sort_values(by=['Last','First']) print(sorted_students) root = Tk() root.withdraw() csvfile = asksaveasfile(mode='w',defaultextension='.csv',title='Choose a file to save grades to') root.destroy() if csvfile: sorted_students.to_csv(csvfile)
def _saveimport(self, event=None): root = Tk() root.withdraw() csvfile = asksaveasfile(mode='w',defaultextension='.csv',title='Choose a file to save registrar import to') root.destroy() if csvfile: sorted_students = self.student_list.sort_values(by=['Last','First']) finalgrades = pd.DataFrame() finalgrades['Name'] = sorted_students['Last'] + ', ' + sorted_students['First'] finalgrades['EID'] = sorted_students.index finalgrades['Grade'] = sorted_students['Grades'] finalgrades['Absences'] = '' finalgrades['Remarks'] = '' finalgrades['Unique'] = sorted_students['Class'] finalgrades.to_csv(csvfile, sep='\t', index=False, encoding='utf-8')
def _loadcuts(self, event=None): filetypes = [ ('Cuts file','*.csv'), ('Allfiles','*'), ] if platform.system() != 'Windows': filetypes.append(filetypes.pop(0)) # Reorder so the all gradefiles is selected first root = Tk() root.withdraw() csvfile = askopenfilename(filetypes=filetypes, title='Choose a file to load cuts from') root.destroy() if csvfile: cuts = pd.DataFrame.from_csv(csvfile).values.flatten() for i in range(len(cuts)): self._change(i,cuts[i])
def ask_filenames(): filetypes = [ ('Allfiles','*'), ('Canvas grade file','*.csv'), ] if platform.system() != 'Windows': filetypes.append(filetypes.pop(0)) # Reorder so the all gradefiles is selected first root = Tk() root.withdraw() filenames = askopenfilenames(filetypes=filetypes, title='Select a file or files to open') root.destroy() # Fix for broken Windows Tk if isinstance(filenames,string_types): filenames_extra = re.findall('\{(.*?)\}',filenames) filenames = re.sub('\{(.*?)\}','',filenames) filenames = filenames.split() + filenames_extra return filenames
class LoginDialog(object): def __init__(self, host): self.__interna_init() self.__host = host self.__initialized = False if TKTk is not None: self.__create_content() self.__initialized = True def __interna_init(self): self.__rootFrame = None self.__top = None self.__usrEntry = None self.__pwdEntry = None self.__accepted = False self.__host = None self.__usr = None self.__pwd = None def __cancel_action(self): self.__accepted = False self.__rootFrame.destroy() def __login_action(self): self.__accepted = True self.__usr = self.__usrEntry.get() self.__pwd = self.__pwdEntry.get() self.__rootFrame.destroy() def __enter_action(self, event): self.__login_action() def __create_content(self): self.__rootFrame = TKTk() self.__rootFrame.withdraw() self.__top = TKToplevel(self.__rootFrame) self.__top.title("Login") self.__top.protocol("WM_DELETE_WINDOW", self.__rootFrame.destroy) self.__top.bind('<Return>', self.__enter_action) self.__top.update_idletasks() width = self.__top.winfo_width() height = self.__top.winfo_height() x = (self.__top.winfo_screenwidth() // 2) - (width // 2) y = (self.__top.winfo_screenheight() // 2) - (height // 2) self.__top.geometry("+%d+%d" % (x, y)) row = 0 expLabel = TKLabel(self.__top, text='Login to host:') expLabel.grid(row=row, column=0, columnspan=4, padx=5, pady=2) row = row + 1 urlLabel = TKLabel(self.__top, text=self.__host) urlLabel.grid(row=row, column=0, columnspan=4, padx=5, pady=2) row = row + 1 usrLabel = TKLabel(self.__top, text='User') usrLabel.grid(row=row, column=0, columnspan=2, padx=20, pady=5) self.__usrEntry = TKEntry(self.__top, width=20) self.__usrEntry.grid(row=row, column=2, columnspan=2, padx=5, pady=5) row = row + 1 pwdLabel = TKLabel(self.__top, text='Password') pwdLabel.grid(row=row, column=0, columnspan=2, padx=20, pady=5) self.__pwdEntry = TKEntry(self.__top, width=20, show="*") self.__pwdEntry.grid(row=row, column=2, columnspan=2, padx=5, pady=5) row = row + 1 cancelButton = TKButton(self.__top, text='Cancel', command=self.__cancel_action) cancelButton.grid(row=row, column=1, padx=5, pady=5) loginButton = TKButton(self.__top, text='Login', command=self.__login_action) loginButton.grid(row=row, column=2, padx=5, pady=5) def show_login(self): if self.__initialized: self.__usrEntry.focus_set() self.__rootFrame.mainloop() else: print("tkinter python module is not available.\n\ Please, install tkinter module or use command line login utility.") def is_accepted(self): return self.__accepted def get_user(self): return self.__usr def get_password(self): return self.__pwd
def _get_parent(self): parent = Tk() parent.withdraw() return parent
else: import tkinter.filedialog as tkinter_filedialog import tkinter.messagebox as tkinter_messagebox if getattr(sys, "frozen", False): __file__ = sys.executable FILEDIR = os.path.dirname(__file__) CONFIG = os.path.join(os.path.expanduser("~"), ".config", "retux") if __name__ == '__main__': if not os.path.exists(CONFIG): os.makedirs(CONFIG) tkwindow = Tk() tkwindow.withdraw() fnames = tkinter_filedialog.askopenfilenames(filetypes=[("all files", ".*") ], initialdir=FILEDIR) for fname in fnames: rp = os.path.relpath(fname, FILEDIR) if not rp.startswith(os.pardir): cd = os.path.dirname(os.path.join(CONFIG, rp)) if not os.path.exists(cd): os.makedirs(cd) new_name = os.path.join(cd, os.path.basename(fname)) if os.path.isfile(new_name): os.remove(new_name) elif os.path.isdir(new_name): shutil.rmtree(new_name)
class LoginDialog(object): def __init__(self, host): self.__interna_init() self.__host = host self.__create_content() def __interna_init(self): self.__rootFrame = None self.__top = None self.__usrEntry = None self.__pwdEntry = None self.__accepted = False self.__host = None self.__usr = None self.__pwd = None def __cancel_action(self): self.__accepted = False self.__rootFrame.destroy() def __login_action(self): self.__accepted = True self.__usr = self.__usrEntry.get() self.__pwd = self.__pwdEntry.get() self.__rootFrame.destroy() def __enter_action(self, event): self.__login_action() def __create_content(self): self.__rootFrame = TKTk() self.__rootFrame.withdraw() self.__top = TKToplevel(self.__rootFrame) self.__top.title("Login") self.__top.protocol("WM_DELETE_WINDOW", self.__rootFrame.destroy) self.__top.bind('<Return>', self.__enter_action) self.__top.update_idletasks() width = self.__top.winfo_width() height = self.__top.winfo_height() x = (self.__top.winfo_screenwidth() // 2) - (width // 2) y = (self.__top.winfo_screenheight() // 2) - (height // 2) self.__top.geometry("+%d+%d" % (x, y)) row = 0 expLabel = TKLabel(self.__top, text='Login to host:') expLabel.grid(row=row, column=0, columnspan=4, padx=5, pady=2) row = row+1 urlLabel = TKLabel(self.__top, text=self.__host) urlLabel.grid(row=row, column=0, columnspan=4, padx=5, pady=2) row = row+1 usrLabel = TKLabel(self.__top, text='User') usrLabel.grid(row=row, column=0, columnspan=2, padx=20, pady=5) self.__usrEntry = TKEntry(self.__top, width=20) self.__usrEntry.grid(row=row, column=2, columnspan=2, padx=5, pady=5) row = row+1 pwdLabel = TKLabel(self.__top, text='Password') pwdLabel.grid(row=row, column=0, columnspan=2, padx=20, pady=5) self.__pwdEntry = TKEntry(self.__top, width=20, show="*") self.__pwdEntry.grid(row=row, column=2, columnspan=2, padx=5, pady=5) row = row+1 cancelButton = TKButton(self.__top, text='Cancel', command=self.__cancel_action) cancelButton.grid(row=row, column=1, padx=5, pady=5) loginButton = TKButton(self.__top, text='Login', command=self.__login_action) loginButton.grid(row=row, column=2, padx=5, pady=5) def show_login(self): self.__usrEntry.focus_set() self.__rootFrame.mainloop() def is_accepted(self): return self.__accepted def get_user(self): return self.__usr def get_password(self): return self.__pwd