채널 선택 기능 추가: 드롭다운 메뉴 및 선택 변경 이벤트 구현

This commit is contained in:
3minbe 2025-02-17 18:24:20 +09:00
parent 87a51ef2ba
commit c7d94f4cd5
2 changed files with 39 additions and 2 deletions

View File

@ -89,12 +89,13 @@ class MainView(QtWidgets.QMainWindow):
self.default_save_path = os.path.join(os.path.expanduser("~"), "Desktop") # 바탕화면 경로 설정 self.default_save_path = os.path.join(os.path.expanduser("~"), "Desktop") # 바탕화면 경로 설정
self.file_paths = [] # 파일 경로 저장 리스트 self.file_paths = [] # 파일 경로 저장 리스트
self.channel_info = {} # 채널 정보 초기화 self.channel_info = {} # 채널 정보 초기화
self.channel_options = ["CH0", "CH1", "CH2", "CH3", "CH4", "CH5"] # 채널 옵션 설정
self.loadSettings() # 설정 로드 self.loadSettings() # 설정 로드
self.setupUI(base_path) # UI 설정 self.setupUI(base_path) # UI 설정
self.centerWindow() # 창을 화면 중앙에 위치 self.centerWindow() # 창을 화면 중앙에 위치
self.sortTreeView(0, True) # 기본 파일명 오름차순 정렬 self.sortTreeView(0, True) # 기본 파일명 오름차순 정렬
self.channel_options = ["CH0", "CH1", "CH2", "CH3", "CH4", "CH5"] # 채널 옵션 설정
self.setupCloseEvent() # 프로그램 종료 이벤트 설정 self.setupCloseEvent() # 프로그램 종료 이벤트 설정
self.tree.itemSelectionChanged.connect(self.onFileSelectionChanged)
def loadSettings(self): def loadSettings(self):
self.settings_file = "settings.json" self.settings_file = "settings.json"
@ -288,10 +289,46 @@ class MainView(QtWidgets.QMainWindow):
settings_label = QtWidgets.QLabel("설정") settings_label = QtWidgets.QLabel("설정")
settings_label.setAlignment(QtCore.Qt.AlignCenter) settings_label.setAlignment(QtCore.Qt.AlignCenter)
settings_label.setStyleSheet("font-weight: bold; font-size: 14px;") # 글자를 굵게 하고 크기를 16px로 설정
settings_layout.addWidget(settings_label) 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 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): def selectSavePath(self):
selected_path = QtWidgets.QFileDialog.getExistingDirectory(self, "저장 경로 선택", self.default_save_path) selected_path = QtWidgets.QFileDialog.getExistingDirectory(self, "저장 경로 선택", self.default_save_path)
if selected_path: if selected_path:

View File

@ -2,6 +2,6 @@
"theme": "light", "theme": "light",
"default_save_path": "C:/Users/MSI/Desktop", "default_save_path": "C:/Users/MSI/Desktop",
"file_paths": [], "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": {} "channel_info": {}
} }