mirror of
https://github.com/3minbe/DBC_Converter.git
synced 2026-05-17 01:23:58 +09:00
UI 개선 및 설정 패널 추가, 아이콘 파일 형식 변경, 창 크기 조정
This commit is contained in:
parent
4634538927
commit
830ecccb69
@ -83,7 +83,7 @@ class MainView(QtWidgets.QMainWindow):
|
||||
else:
|
||||
base_path = os.path.abspath(".") # 실행 파일이 아닌 경우 현재 디렉토리로 설정
|
||||
|
||||
icon_path = os.path.join(base_path, "icon/icon.ico") # 아이콘 경로 설정
|
||||
icon_path = os.path.join(base_path, "icon/icon.png") # 아이콘 경로 설정
|
||||
self.setWindowIcon(QtGui.QIcon(icon_path)) # 프로그램 아이콘 설정
|
||||
self.version = "1.0.0" # 프로그램 버전 설정
|
||||
self.default_save_path = os.path.join(os.path.expanduser("~"), "Desktop") # 바탕화면 경로 설정
|
||||
@ -120,8 +120,8 @@ class MainView(QtWidgets.QMainWindow):
|
||||
json.dump(self.settings, file, ensure_ascii=False, indent=4) # 설정 파일 저장
|
||||
|
||||
def setupUI(self, base_path):
|
||||
self.setWindowTitle("DBC to C Converter")
|
||||
self.setGeometry(100, 100, 1000, 600) # 창 크기 조정
|
||||
self.setWindowTitle("DBC Converter")
|
||||
self.setGeometry(100, 100, 1250, 600) # 창 크기 조정
|
||||
|
||||
# 메뉴바 추가
|
||||
self.menu_bar = self.menuBar()
|
||||
@ -163,6 +163,7 @@ class MainView(QtWidgets.QMainWindow):
|
||||
size_menu.addAction("작게", lambda: self.setWindowSize("small")).setShortcut('Ctrl+1')
|
||||
size_menu.addAction("보통", lambda: self.setWindowSize("medium")).setShortcut('Ctrl+2')
|
||||
size_menu.addAction("크게", lambda: self.setWindowSize("large")).setShortcut('Ctrl+3')
|
||||
size_menu.addAction("기본", lambda: self.setWindowSize("default")).setShortcut('Ctrl+0')
|
||||
size_menu.addAction("자동", lambda: self.setWindowSize("auto")).setShortcut('Ctrl+4')
|
||||
|
||||
sort_menu = view_menu.addMenu("정렬")
|
||||
@ -230,9 +231,11 @@ class MainView(QtWidgets.QMainWindow):
|
||||
# 메인 위젯 설정
|
||||
main_widget = QtWidgets.QWidget()
|
||||
self.setCentralWidget(main_widget)
|
||||
main_layout = QtWidgets.QVBoxLayout(main_widget)
|
||||
main_layout = QtWidgets.QHBoxLayout(main_widget)
|
||||
|
||||
# 파일 리스트 설정
|
||||
file_list_widget = QtWidgets.QWidget()
|
||||
file_list_layout = QtWidgets.QVBoxLayout(file_list_widget)
|
||||
self.tree = QtWidgets.QTreeWidget()
|
||||
self.tree.setColumnCount(4)
|
||||
self.tree.setHeaderLabels(['파일명', '파일경로', '채널', '파일크기'])
|
||||
@ -243,7 +246,13 @@ class MainView(QtWidgets.QMainWindow):
|
||||
self.tree.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
|
||||
self.tree.header().sectionClicked.connect(self.onHeaderClicked)
|
||||
self.tree.itemDoubleClicked.connect(self.onItemDoubleClicked)
|
||||
main_layout.addWidget(self.tree)
|
||||
|
||||
# 헤더 라벨 가운데 정렬
|
||||
header = self.tree.header()
|
||||
for i in range(self.tree.columnCount()):
|
||||
header.setDefaultAlignment(QtCore.Qt.AlignCenter)
|
||||
|
||||
file_list_layout.addWidget(self.tree)
|
||||
|
||||
# 저장 경로 설정 위젯 추가
|
||||
path_layout = QtWidgets.QHBoxLayout()
|
||||
@ -258,13 +267,30 @@ class MainView(QtWidgets.QMainWindow):
|
||||
path_layout.addWidget(self.path_edit)
|
||||
path_layout.addWidget(self.path_button)
|
||||
path_layout.addWidget(self.open_path_button)
|
||||
main_layout.addLayout(path_layout)
|
||||
file_list_layout.addLayout(path_layout)
|
||||
|
||||
# 알림창 설정
|
||||
self.alert_text = QtWidgets.QTextEdit()
|
||||
self.alert_text.setReadOnly(True)
|
||||
self.alert_text.setAcceptRichText(True)
|
||||
main_layout.addWidget(self.alert_text)
|
||||
file_list_layout.addWidget(self.alert_text)
|
||||
|
||||
main_layout.addWidget(file_list_widget)
|
||||
|
||||
# 설정 창 추가
|
||||
self.settings_panel = self.createSettingsPanel()
|
||||
self.settings_panel.setFixedWidth(200) # 너비를 200으로 설정
|
||||
main_layout.addWidget(self.settings_panel, 0)
|
||||
|
||||
def createSettingsPanel(self):
|
||||
settings_panel = QtWidgets.QWidget()
|
||||
settings_layout = QtWidgets.QVBoxLayout(settings_panel)
|
||||
|
||||
settings_label = QtWidgets.QLabel("설정")
|
||||
settings_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
settings_layout.addWidget(settings_label)
|
||||
|
||||
return settings_panel
|
||||
|
||||
def selectSavePath(self):
|
||||
selected_path = QtWidgets.QFileDialog.getExistingDirectory(self, "저장 경로 선택", self.default_save_path)
|
||||
@ -393,7 +419,9 @@ class MainView(QtWidgets.QMainWindow):
|
||||
elif size == "medium":
|
||||
self.resize(800, 600)
|
||||
elif size == "large":
|
||||
self.resize(1000, 800)
|
||||
self.resize(1200, 1000)
|
||||
elif size == "default":
|
||||
self.resize(1000, 600)
|
||||
elif size == "auto":
|
||||
self.adjustSize()
|
||||
|
||||
@ -417,16 +445,10 @@ class MainView(QtWidgets.QMainWindow):
|
||||
label1 = QtWidgets.QLabel("이 프로그램은 DBC 파일을 C 파일로 변환합니다.")
|
||||
label1.setAlignment(QtCore.Qt.AlignCenter)
|
||||
|
||||
label2 = QtWidgets.QLabel("프로그램 정보")
|
||||
label2.setAlignment(QtCore.Qt.AlignCenter)
|
||||
|
||||
label3 = QtWidgets.QLabel(f"버전: {self.version}")
|
||||
label3.setAlignment(QtCore.Qt.AlignCenter)
|
||||
|
||||
label2.setFont(QtGui.QFont("Arial", 12, QtGui.QFont.Bold))
|
||||
|
||||
layout.addWidget(label1)
|
||||
layout.addWidget(label2)
|
||||
layout.addWidget(label3)
|
||||
self.centerDialog(about_window)
|
||||
about_window.exec_()
|
||||
@ -509,6 +531,8 @@ class MainView(QtWidgets.QMainWindow):
|
||||
|
||||
channel_combo = QtWidgets.QComboBox()
|
||||
channel_combo.addItems(self.channel_options)
|
||||
current_channel = item.text(2)
|
||||
channel_combo.setCurrentText(current_channel) # 현재 채널을 콤보박스에 설정
|
||||
layout.addWidget(channel_combo)
|
||||
|
||||
button_layout = QtWidgets.QHBoxLayout()
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@ -78,7 +78,7 @@
|
||||
[],
|
||||
False,
|
||||
False,
|
||||
1736310056,
|
||||
1736323187,
|
||||
[('runw.exe',
|
||||
'C:\\Users\\MSI\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\PyInstaller\\bootloader\\Windows-64bit-intel\\runw.exe',
|
||||
'EXECUTABLE')],
|
||||
|
||||
@ -14,10 +14,10 @@ Types if import:
|
||||
IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
|
||||
tracking down the missing module yourself. Thanks!
|
||||
|
||||
missing module named 'collections.abc' - imported by traceback (top-level), inspect (top-level), logging (top-level), typing (top-level), selectors (top-level), tracemalloc (top-level), cantools.tester (top-level), typing_extensions (top-level), configparser (top-level), can.exceptions (conditional), asyncio.base_events (top-level), http.client (top-level), asyncio.coroutines (top-level), sqlite3.dbapi2 (top-level), pkg_resources (top-level), setuptools (top-level), setuptools._vendor.jaraco.functools (top-level), setuptools._vendor.more_itertools.more (top-level), setuptools._vendor.more_itertools.recipes (top-level), setuptools._reqs (top-level), setuptools.discovery (top-level), setuptools.dist (top-level), setuptools._distutils.dist (top-level), setuptools.config.setupcfg (top-level), setuptools.config.expand (top-level), setuptools.config.pyprojecttoml (top-level), setuptools.config._apply_pyprojecttoml (top-level), tomllib._parser (top-level), setuptools._vendor.tomli._parser (top-level), setuptools.command.egg_info (top-level), setuptools.glob (top-level), setuptools.command._requirestxt (top-level), setuptools.command.bdist_wheel (top-level), wheel.cli.convert (top-level), wheel.cli.tags (top-level), setuptools._vendor.platformdirs.windows (conditional), diskcache.persistent (top-level), cantools.typechecking (top-level), cantools.database.utils (top-level), xml.etree.ElementTree (top-level), cantools.database.can.formats.sym (conditional), _pyrepl.types (top-level), _pyrepl.readline (top-level)
|
||||
missing module named 'collections.abc' - imported by tracemalloc (top-level), traceback (top-level), inspect (top-level), logging (top-level), typing (top-level), selectors (top-level), cantools.tester (top-level), typing_extensions (top-level), configparser (top-level), can.exceptions (conditional), asyncio.base_events (top-level), http.client (top-level), asyncio.coroutines (top-level), sqlite3.dbapi2 (top-level), pkg_resources (top-level), setuptools (top-level), setuptools._vendor.jaraco.functools (top-level), setuptools._vendor.more_itertools.more (top-level), setuptools._vendor.more_itertools.recipes (top-level), setuptools._reqs (top-level), setuptools.discovery (top-level), setuptools.dist (top-level), setuptools._distutils.dist (top-level), setuptools.config.setupcfg (top-level), setuptools.config.expand (top-level), setuptools.config.pyprojecttoml (top-level), setuptools.config._apply_pyprojecttoml (top-level), tomllib._parser (top-level), setuptools._vendor.tomli._parser (top-level), setuptools.command.egg_info (top-level), setuptools.glob (top-level), setuptools.command._requirestxt (top-level), setuptools.command.bdist_wheel (top-level), wheel.cli.convert (top-level), wheel.cli.tags (top-level), setuptools._vendor.platformdirs.windows (conditional), diskcache.persistent (top-level), cantools.typechecking (top-level), cantools.database.utils (top-level), xml.etree.ElementTree (top-level), cantools.database.can.formats.sym (conditional), _pyrepl.types (top-level), _pyrepl.readline (top-level)
|
||||
missing module named grp - imported by shutil (delayed, optional), tarfile (optional), pathlib._local (optional), subprocess (delayed, conditional, optional), setuptools._distutils.archive_util (optional), setuptools._vendor.backports.tarfile (optional)
|
||||
missing module named pwd - imported by posixpath (delayed, conditional, optional), shutil (delayed, optional), tarfile (optional), pathlib._local (optional), subprocess (delayed, conditional, optional), setuptools._distutils.util (delayed, conditional, optional), setuptools._distutils.archive_util (optional), netrc (delayed, conditional), getpass (delayed, optional), setuptools._vendor.backports.tarfile (optional), http.server (delayed, optional)
|
||||
missing module named posix - imported by os (conditional, optional), posixpath (optional), shutil (conditional), importlib._bootstrap_external (conditional), _pyrepl.unix_console (delayed, optional)
|
||||
missing module named posix - imported by posixpath (optional), shutil (conditional), importlib._bootstrap_external (conditional), os (conditional, optional), _pyrepl.unix_console (delayed, optional)
|
||||
missing module named resource - imported by posix (top-level)
|
||||
missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional), zipimport (top-level)
|
||||
excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional), zipimport (top-level)
|
||||
|
||||
BIN
dist/DBC Converter/DBC Converter.exe
vendored
BIN
dist/DBC Converter/DBC Converter.exe
vendored
Binary file not shown.
Loading…
Reference in New Issue
Block a user