Amazing-Python-Scripts
76 строк · 1.9 Кб
1# Author:Priyadarshan2000 (Priyadarshan Ghosh)
2# Simple Python IDE using Tkinter
3# See the readme.md for how to Run this Project.
4
5# importing the modules
6from tkinter import *7from tkinter.filedialog import asksaveasfilename, askopenfilename8import subprocess9
10compiler = Tk()11compiler.title('Simple Python IDE')12file_path = ''13
14
15def set_file_path(path):16global file_path17file_path = path18
19
20def open_file():21path = askopenfilename(filetypes=[('Python Files', '*.py')])22with open(path, 'r') as file:23code = file.read()24editor.delete('1.0', END)25editor.insert('1.0', code)26set_file_path(path)27
28
29def save_as():30if file_path == '':31path = asksaveasfilename(filetypes=[('Python Files', '*.py')])32else:33path = file_path34with open(path, 'w') as file:35code = editor.get('1.0', END)36file.write(code)37set_file_path(path)38
39
40def run():41if file_path == '':42save_prompt = Toplevel()43text = Label(save_prompt, text='Please save your code')44text.pack()45return46command = f'python {file_path}'47process = subprocess.Popen(48command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)49output, error = process.communicate()50code_output.insert('1.0', output)51code_output.insert('1.0', error)52
53
54menu_bar = Menu(compiler)55
56file_menu = Menu(menu_bar, tearoff=0)57file_menu.add_command(label='Open', command=open_file)58file_menu.add_command(label='Save', command=save_as)59file_menu.add_command(label='Save As', command=save_as)60file_menu.add_command(label='Exit', command=exit)61menu_bar.add_cascade(label='File', menu=file_menu)62
63run_bar = Menu(menu_bar, tearoff=0)64run_bar.add_command(label='Run', command=run)65menu_bar.add_cascade(label='Run', menu=run_bar)66
67compiler.config(menu=menu_bar)68
69editor = Text()70editor.pack()71
72code_output = Text(height=10)73code_output.pack()74
75# Starting the GUI
76compiler.mainloop()77