diff --git a/DBC_Converter.py b/DBC_Converter.py index 2146ba7..8697794 100644 --- a/DBC_Converter.py +++ b/DBC_Converter.py @@ -89,12 +89,13 @@ class MainView(QtWidgets.QMainWindow): self.default_save_path = os.path.join(os.path.expanduser("~"), "Desktop") # 바탕화면 경로 설정 self.file_paths = [] # 파일 경로 저장 리스트 self.channel_info = {} # 채널 정보 초기화 + self.channel_options = ["CH0", "CH1", "CH2", "CH3", "CH4", "CH5"] # 채널 옵션 설정 self.loadSettings() # 설정 로드 self.setupUI(base_path) # UI 설정 self.centerWindow() # 창을 화면 중앙에 위치 self.sortTreeView(0, True) # 기본 파일명 오름차순 정렬 - self.channel_options = ["CH0", "CH1", "CH2", "CH3", "CH4", "CH5"] # 채널 옵션 설정 self.setupCloseEvent() # 프로그램 종료 이벤트 설정 + self.tree.itemSelectionChanged.connect(self.onFileSelectionChanged) def loadSettings(self): self.settings_file = "settings.json" @@ -288,10 +289,46 @@ class MainView(QtWidgets.QMainWindow): settings_label = QtWidgets.QLabel("설정") settings_label.setAlignment(QtCore.Qt.AlignCenter) + settings_label.setStyleSheet("font-weight: bold; font-size: 14px;") # 글자를 굵게 하고 크기를 16px로 설정 settings_layout.addWidget(settings_label) + # 설정 라벨과 채널 선택 라벨 사이에 작은 간격 추가 + settings_layout.addSpacing(20) # 10 픽셀 간격 추가 + + # 채널 선택 드롭다운 메뉴 추가 + channel_label = QtWidgets.QLabel("# 채널 선택") + channel_label.setAlignment(QtCore.Qt.AlignLeft) + settings_layout.addWidget(channel_label) + + self.channel_combo = QtWidgets.QComboBox() + self.channel_combo.addItems(self.channel_options) + self.channel_combo.setEnabled(False) # 초기에는 비활성화 + self.channel_combo.currentIndexChanged.connect(self.onChannelChanged) + settings_layout.addWidget(self.channel_combo) + + # 상단 정렬을 위해 빈 공간 추가 + settings_layout.addStretch() + return settings_panel + def onFileSelectionChanged(self): + selected_items = self.tree.selectedItems() + if selected_items: + self.channel_combo.setEnabled(True) + current_channel = selected_items[0].text(2) + self.channel_combo.setCurrentText(current_channel) + else: + self.channel_combo.setEnabled(False) + + def onChannelChanged(self): + selected_items = self.tree.selectedItems() + if selected_items: + new_channel = self.channel_combo.currentText() + for item in selected_items: + item.setText(2, new_channel) + self.updateChannelInfo(item.text(1), item.text(0), new_channel) + self.updateAlertText(f"채널 변경", [f"{item.text(0)}의 채널이 {new_channel}(으)로 변경되었습니다." for item in selected_items]) + def selectSavePath(self): selected_path = QtWidgets.QFileDialog.getExistingDirectory(self, "저장 경로 선택", self.default_save_path) if selected_path: diff --git a/settings.json b/settings.json index 3771384..656cc45 100644 --- a/settings.json +++ b/settings.json @@ -2,6 +2,6 @@ "theme": "light", "default_save_path": "C:/Users/MSI/Desktop", "file_paths": [], - "last_opened_dir": "C:/Users/MSI/Desktop/python/motorola_tx", + "last_opened_dir": "C:/Users/MSI/SynologyDrive/3min_be/한자연/!과제/초안전/#Debug/DBC", "channel_info": {} } \ No newline at end of file