From b39f9bc6d4b5a70ccb3097687393dd2ea96fe774 Mon Sep 17 00:00:00 2001 From: 3minbe <80878623+3minbe@users.noreply.github.com> Date: Sat, 4 Jan 2025 00:37:33 +0900 Subject: [PATCH] =?UTF-8?q?[Code]=20=EB=A9=94=EB=89=B4=20=EA=B5=AC?= =?UTF-8?q?=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DBC_Converter.py | 90 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/DBC_Converter.py b/DBC_Converter.py index 9db1db4..d7bc520 100644 --- a/DBC_Converter.py +++ b/DBC_Converter.py @@ -15,6 +15,51 @@ class MainView(tk.Tk): self.title("DBC to C Converter") self.geometry("800x600") + # 메뉴바 추가 + self.menu_bar = tk.Menu(self) + self.config(menu=self.menu_bar) + + file_menu = tk.Menu(self.menu_bar, tearoff=0) + edit_menu = tk.Menu(self.menu_bar, tearoff=0) + view_menu = tk.Menu(self.menu_bar, tearoff=0) + tools_menu = tk.Menu(self.menu_bar, tearoff=0) + + self.menu_bar.add_cascade(label="파일", menu=file_menu) + self.menu_bar.add_cascade(label="편집", menu=edit_menu) + self.menu_bar.add_cascade(label="보기", menu=view_menu) + self.menu_bar.add_cascade(label="도구", menu=tools_menu) + + # 파일 메뉴 항목 추가 + file_menu.add_command(label="파일 추가", command=self.FilesOpen) + file_menu.add_command(label="선택 파일 삭제", command=self.deleteSelectedFiles) + file_menu.add_command(label="모든 파일 삭제", command=self.deleteAllFiles) + + # 편집 메뉴 항목 추가 + edit_menu.add_command(label="모두 선택", command=self.selectAllFiles) + edit_menu.add_command(label="선택 반전", command=self.invertSelection) + + # 보기 메뉴 항목 추가 + size_menu = tk.Menu(view_menu, tearoff=0) + size_menu.add_command(label="작게", command=lambda: self.setWindowSize("small")) + size_menu.add_command(label="보통", command=lambda: self.setWindowSize("medium")) + size_menu.add_command(label="크게", command=lambda: self.setWindowSize("large")) + size_menu.add_command(label="자동", command=lambda: self.setWindowSize("auto")) + + sort_menu = tk.Menu(view_menu, tearoff=0) + sort_menu.add_command(label="파일명 오름차순", command=lambda: self.sortTreeView('파일명', False)) + sort_menu.add_command(label="파일명 내림차순", command=lambda: self.sortTreeView('파일명', True)) + sort_menu.add_command(label="파일경로 오름차순", command=lambda: self.sortTreeView('파일경로', False)) + sort_menu.add_command(label="파일경로 내림차순", command=lambda: self.sortTreeView('파일경로', True)) + sort_menu.add_command(label="파일크기 오름차순", command=lambda: self.sortTreeView('파일크기', False)) + sort_menu.add_command(label="파일크기 내림차순", command=lambda: self.sortTreeView('파일크기', True)) + + view_menu.add_cascade(label="창크기", menu=size_menu) + view_menu.add_cascade(label="정렬", menu=sort_menu) + + # 도구 메뉴 항목 추가 + tools_menu.add_command(label="설정", command=self.openSettings) + tools_menu.add_command(label="프로그램 정보", command=self.openAbout) + self.tree = ttk.Treeview(self, columns=('파일명', '파일경로', '파일크기'), show='headings') self.tree.heading('파일명', text='파일명', command=lambda: self.sortTreeView('파일명', False)) self.tree.heading('파일경로', text='파일경로', command=lambda: self.sortTreeView('파일경로', False)) @@ -201,6 +246,51 @@ class MainView(tk.Tk): else: self.tree.heading(col_name, text=col_name, command=lambda _col=col_name: self.sortTreeView(_col, False)) + def selectAllFiles(self): + for item in self.tree.get_children(): + self.tree.selection_add(item) + + def invertSelection(self): + selected_items = set(self.tree.selection()) + all_items = set(self.tree.get_children()) + new_selection = all_items - selected_items + self.tree.selection_set(new_selection) + + def setWindowSize(self, size): + if size == "small": + self.geometry("600x400") + elif size == "medium": + self.geometry("800x600") + elif size == "large": + self.geometry("1000x800") + elif size == "auto": + self.geometry("") + + def zoomIn(self): + current_font_size = self.tree.cget("font").split()[1] + new_font_size = int(current_font_size) + 2 + self.tree.config(font=("TkDefaultFont", new_font_size)) + + def zoomOut(self): + current_font_size = self.tree.cget("font").split()[1] + new_font_size = int(current_font_size) - 2 + self.tree.config(font=("TkDefaultFont", new_font_size)) + + def resetZoom(self): + self.tree.config(font=("TkDefaultFont", 10)) + + def openSettings(self): + settings_window = tk.Toplevel(self) + settings_window.title("설정") + settings_window.geometry("400x300") + tk.Label(settings_window, text="설정 창입니다.").pack(pady=20) + + def openAbout(self): + about_window = tk.Toplevel(self) + about_window.title("프로그램 정보") + about_window.geometry("400x300") + tk.Label(about_window, text="프로그램 정보 창입니다.").pack(pady=20) + if __name__ == '__main__': app = MainView() app.mainloop() \ No newline at end of file