class Run: def __init__(self): self.file = File() self.file.file_menu() self.run = tk.Menu(menubar.toolbar, tearoff=False) self.run.add_command(label="Run", command=lambda: self.run_it()) menubar.toolbar.add_cascade(label="Run", menu=self.run) self.binding_keys() def run_it(self): self.file.save_file() try: if self.file.f.name.endswith(".py"): subprocess.Popen(["python", self.file.f.name], shell=True) elif self.file.f.name.endswith(".js"): subprocess.Popen(["node", self.file.f.name], shell=True) elif self.file.f.name.endswith(".exs"): subprocess.Popen(["elixir", self.file.f.name], shell=True) else: toplevel = tk.Toplevel(w.root) toplevel.title("Warning") txt = tk.Text(toplevel) txt.insert("1.0", "File cannot run.") toplevel.geometry("215x50") toplevel.resizable(False, False) txt.config(state=tk.DISABLED) txt.pack() except AttributeError: return def binding_keys(self): w.root.bind_all("<F5>", lambda event: self.run_it())