diff --git a/file-explorer/file-explorer.py b/file-explorer/file-explorer.py new file mode 100644 index 0000000..0f5cf6b --- /dev/null +++ b/file-explorer/file-explorer.py @@ -0,0 +1,37 @@ +import tkinter as tk +from tkinter import filedialog + +def browse_file(): + file_path = filedialog.askopenfilename() + if file_path: + selected_file.set(file_path) + +def browse_directory(): + directory_path = filedialog.askdirectory() + if directory_path: + selected_directory.set(directory_path) + +# Create the main window +root = tk.Tk() +root.title("Cool File Explorer") + +# Create a label to display the selected file +selected_file = tk.StringVar() +file_label = tk.Label(root, textvariable=selected_file, font=('Helvetica', 12)) +file_label.pack(pady=10) + +# Create a button to browse for a file +file_button = tk.Button(root, text="Browse File", font=('Helvetica', 12), command=browse_file) +file_button.pack() + +# Create a label to display the selected directory +selected_directory = tk.StringVar() +directory_label = tk.Label(root, textvariable=selected_directory, font=('Helvetica', 12)) +directory_label.pack(pady=10) + +# Create a button to browse for a directory +directory_button = tk.Button(root, text="Browse Directory", font=('Helvetica', 12), command=browse_directory) +directory_button.pack() + +# Start the GUI main loop +root.mainloop() diff --git a/image-viewer/image-viewer.py b/image-viewer/image-viewer.py new file mode 100644 index 0000000..9419dca --- /dev/null +++ b/image-viewer/image-viewer.py @@ -0,0 +1,26 @@ +import tkinter as tk +from tkinter import filedialog +from PIL import Image, ImageTk + +def open_image(): + file_path = filedialog.askopenfilename(filetypes=[("Image files", "*.png;*.jpg;*.jpeg;*.gif;*.bmp")]) + if file_path: + image = Image.open(file_path) + photo = ImageTk.PhotoImage(image) + label.config(image=photo) + label.image = photo + +# Create the main window +root = tk.Tk() +root.title("Cool Image Viewer") + +# Create a label to display the image +label = tk.Label(root) +label.pack() + +# Create a button to open an image +open_button = tk.Button(root, text="Open Image", font=('Helvetica', 14), command=open_image) +open_button.pack() + +# Start the GUI main loop +root.mainloop() diff --git a/note-take/note-take.py b/note-take/note-take.py new file mode 100644 index 0000000..ec7b7b2 --- /dev/null +++ b/note-take/note-take.py @@ -0,0 +1,38 @@ +import tkinter as tk +from tkinter import scrolledtext +from tkinter import filedialog + +def save_note(): + note = text_widget.get("1.0", "end-1c") # Get text from the text widget + file_path = filedialog.asksaveasfilename(defaultextension=".txt", filetypes=[("Text files", "*.txt")]) + + if file_path: + with open(file_path, 'w') as file: + file.write(note) + +def open_note(): + file_path = filedialog.askopenfilename(filetypes=[("Text files", "*.txt")]) + + if file_path: + with open(file_path, 'r') as file: + note = file.read() + text_widget.delete("1.0", "end") # Clear existing text + text_widget.insert("1.0", note) # Insert the loaded note + +# Create the main window +root = tk.Tk() +root.title("Cool Note Taker") + +# Create a scrolled text widget +text_widget = scrolledtext.ScrolledText(root, font=('Helvetica', 14)) +text_widget.pack(expand=True, fill='both') + +# Create "Save" and "Open" buttons +save_button = tk.Button(root, text="Save Note", font=('Helvetica', 12), command=save_note) +save_button.pack(side="left", padx=10, pady=10) + +open_button = tk.Button(root, text="Open Note", font=('Helvetica', 12), command=open_note) +open_button.pack(side="right", padx=10, pady=10) + +# Start the GUI main loop +root.mainloop() diff --git a/paint/paint.py b/paint/paint.py new file mode 100644 index 0000000..efc7ae3 --- /dev/null +++ b/paint/paint.py @@ -0,0 +1,38 @@ +import tkinter as tk + +class PaintApp: + def __init__(self, root): + self.root = root + self.root.title("Cool Paint App") + + self.canvas = tk.Canvas(root, bg="white") + self.canvas.pack(fill=tk.BOTH, expand=True) + + self.button_clear = tk.Button(root, text="Clear", command=self.clear_canvas) + self.button_clear.pack() + + self.canvas.bind("", self.start_paint) + self.canvas.bind("", self.paint) + + self.old_x = None + self.old_y = None + + def start_paint(self, event): + self.old_x = event.x + self.old_y = event.y + + def paint(self, event): + new_x = event.x + new_y = event.y + if self.old_x and self.old_y: + self.canvas.create_line(self.old_x, self.old_y, new_x, new_y, fill="black", width=2) + self.old_x = new_x + self.old_y = new_y + + def clear_canvas(self): + self.canvas.delete("all") + +if __name__ == "__main__": + root = tk.Tk() + app = PaintApp(root) + root.mainloop() diff --git a/stopwatch/stopwatch.py b/stopwatch/stopwatch.py new file mode 100644 index 0000000..8586859 --- /dev/null +++ b/stopwatch/stopwatch.py @@ -0,0 +1,53 @@ +import tkinter as tk +import time + +def start(): + global running + running = True + start_button['state'] = 'disabled' + stop_button['state'] = 'active' + update() + +def stop(): + global running + running = False + start_button['state'] = 'active' + stop_button['state'] = 'disabled' + +def reset(): + global running, elapsed_time + running = False + elapsed_time = 0 + time_label.config(text="00:00:00") + start_button['state'] = 'active' + stop_button['state'] = 'disabled' + +def update(): + if running: + global elapsed_time + elapsed_time += 1 + hours, remainder = divmod(elapsed_time, 3600) + minutes, seconds = divmod(remainder, 60) + time_str = f"{hours:02d}:{minutes:02d}:{seconds:02d}" + time_label.config(text=time_str) + time_label.after(1000, update) + +running = False +elapsed_time = 0 + +root = tk.Tk() +root.title("Cool Stopwatch") + +time_label = tk.Label(root, text="00:00:00", font=('Helvetica', 48)) +time_label.pack(padx=20, pady=20) + +start_button = tk.Button(root, text="Start", font=('Helvetica', 16), command=start) +start_button.pack(side="left", padx=10) +stop_button = tk.Button(root, text="Stop", font=('Helvetica', 16), command=stop) +stop_button.pack(side="left", padx=10) +reset_button = tk.Button(root, text="Reset", font=('Helvetica', 16), command=reset) +reset_button.pack(side="left", padx=10) + +stop_button['state'] = 'disabled' + +root.mainloop() diff --git a/text-editor/text-editor.py b/text-editor/text-editor.py new file mode 100644 index 0000000..3194bb6 --- /dev/null +++ b/text-editor/text-editor.py @@ -0,0 +1,40 @@ +import tkinter as tk +from tkinter import filedialog, scrolledtext + +def open_file(): + file_path = filedialog.askopenfilename(filetypes=[("Text files", "*.txt")]) + if file_path: + with open(file_path, 'r') as file: + text.delete(1.0, tk.END) + text.insert(tk.END, file.read()) + root.title(f"Cool Text Editor - {file_path}") + +def save_file(): + file_path = filedialog.asksaveasfilename(defaultextension=".txt", filetypes=[("Text files", "*.txt")]) + if file_path: + with open(file_path, 'w') as file: + file.write(text.get(1.0, tk.END)) + root.title(f"Cool Text Editor - {file_path}") + +# Create the main window +root = tk.Tk() +root.title("Cool Text Editor") + +# Create a scrolled text widget +text = scrolledtext.ScrolledText(root, font=('Helvetica', 14)) +text.pack(expand=True, fill='both') + +# Create the menu bar +menu_bar = tk.Menu(root) +root.config(menu=menu_bar) + +# File menu +file_menu = tk.Menu(menu_bar) +menu_bar.add_cascade(label="File", menu=file_menu) +file_menu.add_command(label="Open", command=open_file) +file_menu.add_command(label="Save", command=save_file) +file_menu.add_separator() +file_menu.add_command(label="Exit", command=root.quit) + +# Start the GUI main loop +root.mainloop() diff --git a/to-do/to-do.py b/to-do/to-do.py new file mode 100644 index 0000000..291eb75 --- /dev/null +++ b/to-do/to-do.py @@ -0,0 +1,35 @@ +import tkinter as tk + +def add_task(): + task = entry.get() + if task: + listbox.insert(tk.END, task) + entry.delete(0, tk.END) + +def remove_task(): + selected_task = listbox.curselection() + if selected_task: + listbox.delete(selected_task) + +# Create the main window +root = tk.Tk() +root.title("Cool To-Do List") + +# Entry widget for adding tasks +entry = tk.Entry(root, font=('Helvetica', 18)) +entry.grid(row=0, column=0, columnspan=2) + +# Button to add tasks +add_button = tk.Button(root, text="Add", font=('Helvetica', 14), command=add_task) +add_button.grid(row=0, column=2) + +# Button to remove tasks +remove_button = tk.Button(root, text="Remove", font=('Helvetica', 14), command=remove_task) +remove_button.grid(row=0, column=3) + +# Listbox to display tasks +listbox = tk.Listbox(root, font=('Helvetica', 18), selectmode=tk.SINGLE, selectbackground="#a5a5a5") +listbox.grid(row=1, column=0, columnspan=4) + +# Start the GUI main loop +root.mainloop()