From 009a3b6568d339aca71a3cf9c927c7c4b308ed76 Mon Sep 17 00:00:00 2001 From: vb Date: Wed, 5 Nov 2025 19:25:36 +0100 Subject: [PATCH] adding hotkeys --- pic.jpg | Bin 0 -> 19295 bytes src/GUI.py | 10 +++++----- 2 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 pic.jpg diff --git a/pic.jpg b/pic.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cecf5db6b2bdbe0fe8b0099ad8414ab19434da1e GIT binary patch literal 19295 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 literal 0 HcmV?d00001 diff --git a/src/GUI.py b/src/GUI.py index fb16cb2..e2d7365 100644 --- a/src/GUI.py +++ b/src/GUI.py @@ -66,9 +66,9 @@ class GUI: root.config(menu=menu) file_menu = tk.Menu(menu, tearoff=0) menu.add_cascade(label="File", menu=file_menu) - file_menu.add_command(label="Open Image", command=lambda: self._openImage()) - file_menu.add_command(label="Open Camera", command=lambda: self._openCamera()) - file_menu.add_command(label="Save Image", command=lambda: self._saveImage()) + file_menu.add_command(label="Open Image", accelerator="Ctrl+O", command=lambda: self._openImage()) + file_menu.add_command(label="Open Camera", accelerator="Ctrl+K", command=lambda: self._openCamera()) + file_menu.add_command(label="Save Image", accelerator="Ctrl+S", command=lambda: self._saveImage()) file_menu.add_command(label="Exit", command=root.quit) test_menu = tk.Menu(menu, tearoff=0) @@ -92,7 +92,7 @@ class GUI: edit_menu.add_command(label="Undo", accelerator="Ctrl+Z", command=lambda: self._undo()) edit_menu.add_command(label="Redo", accelerator="Ctrl+Y", command=lambda: self._redo()) edit_menu.add_separator() - edit_menu.add_command(label="Toggle Selection Mode", accelerator="Ctrl+S", command=lambda: self._toggleSelectionMode()) + edit_menu.add_command(label="Toggle Selection Mode", accelerator="Ctrl+X", command=lambda: self._toggleSelectionMode()) edit_menu.add_command(label="Toggle Selection Shape (Rect/Circle)", accelerator="Ctrl+Shift+C", command=lambda: self._toggleSelectionShape()) edit_menu.add_separator() edit_menu.add_command(label="Brush Tool", accelerator="Ctrl+B", command=lambda: self._toggleBrushMode()) @@ -186,7 +186,7 @@ class GUI: # Key bindings root.bind_all('', lambda event: self._undo()) root.bind_all('', lambda event: self._redo()) - root.bind_all('', lambda event: self._toggleSelectionMode()) + root.bind_all('', lambda event: self._toggleSelectionMode()) root.bind_all('', lambda event: self._toggleSelectionShape()) root.bind_all('', lambda event: self._toggleBrushMode())