First commit
This commit is contained in:
167
MgrUtilityPoleUI.py
Normal file
167
MgrUtilityPoleUI.py
Normal file
@@ -0,0 +1,167 @@
|
||||
import sys
|
||||
import os
|
||||
import shutil
|
||||
import UtilPack as util
|
||||
|
||||
|
||||
from PyQt5.QtCore import Qt, QSettings, QRect
|
||||
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QPushButton, QVBoxLayout, QLineEdit, \
|
||||
QHBoxLayout, QTableWidget, QTableWidgetItem, QAbstractItemView, QHeaderView, QFileDialog, \
|
||||
QListWidget, QListWidgetItem, QMessageBox
|
||||
from PyQt5.QtGui import QResizeEvent, QCloseEvent, QColor
|
||||
|
||||
class MyApp(QMainWindow):
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.initUI()
|
||||
self.loadINI()
|
||||
self.initDB()
|
||||
|
||||
#
|
||||
def closeEvent(self, a0: 'QCloseEvent | None'):
|
||||
filenameLog = f"{util.GetCurrentTime()}_DbgLog.txt"
|
||||
pathDbgLog = os.path.join( self.pathLog, filenameLog)
|
||||
util.SaveDbgMessages(pathDbgLog)
|
||||
self.saveINI()
|
||||
super().closeEvent(a0)
|
||||
|
||||
#
|
||||
def resizeEvent(self, a0: 'QResizeEvent | None'):
|
||||
pass
|
||||
|
||||
#
|
||||
def loadINI(self):
|
||||
pass
|
||||
|
||||
#
|
||||
def saveINI(self):
|
||||
pass
|
||||
|
||||
#
|
||||
def initDB(self):
|
||||
pass
|
||||
|
||||
#
|
||||
def MakeUI_Left(self):
|
||||
layout = QVBoxLayout()
|
||||
|
||||
layout_top = QHBoxLayout()
|
||||
self.listWidget_Folders = QListWidget()
|
||||
self.listWidget_Folders.setFixedHeight(100)
|
||||
|
||||
layout_Btns = QVBoxLayout()
|
||||
btn_FolderAdd = QPushButton("폴더 추가")
|
||||
btn_FolderAdd.clicked.connect(self.on_btnFolderAdd_clicked)
|
||||
btn_FolderDel = QPushButton("폴더 삭제")
|
||||
btn_FolderDel.clicked.connect(self.on_btnFolderDel_clicked)
|
||||
btn_FolderParss = QPushButton("폴더 파싱")
|
||||
btn_FolderParss.clicked.connect(self.on_btnFolderParse_clicked)
|
||||
|
||||
layout_Btns.addWidget(btn_FolderAdd)
|
||||
layout_Btns.addWidget(btn_FolderDel)
|
||||
layout_Btns.addWidget(btn_FolderParss)
|
||||
|
||||
layout_top.addWidget(self.listWidget_Folders)
|
||||
layout_top.addLayout(layout_Btns)
|
||||
|
||||
self.tableWidget_Src = QTableWidget()
|
||||
self.tableWidget_Src.verticalHeader().setVisible(False)
|
||||
self.tableWidget_Src.setEditTriggers(QAbstractItemView.NoEditTriggers)
|
||||
self.tableWidget_Src.setSortingEnabled(True)
|
||||
self.tableWidget_Src.setColumnCount(5)
|
||||
self.tableWidget_Src.setHorizontalHeaderLabels(["Path", "Title", "H.ID", "Img Cnt", "Dw Cnt"])
|
||||
self.tableWidget_Src.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
|
||||
self.tableWidget_Src.horizontalHeader().sectionClicked.connect(self.on_tableWidget_Src_headerClicked)
|
||||
self.tableWidget_Src.setSelectionBehavior(QAbstractItemView.SelectRows)
|
||||
self.tableWidget_Src.setSelectionMode(QAbstractItemView.SingleSelection)
|
||||
self.tableWidget_Src.itemSelectionChanged.connect(self.on_tableWidget_Src_itemSelectionChanged)
|
||||
|
||||
layout.addLayout(layout_top)
|
||||
layout.addWidget(self.tableWidget_Src)
|
||||
|
||||
return layout
|
||||
|
||||
#
|
||||
def MakeUI_Center(self):
|
||||
layout = QVBoxLayout()
|
||||
|
||||
btn_Emptyfolder = QPushButton("빈 폴더 이동")
|
||||
btn_Emptyfolder.clicked.connect(self.on_btn_Emptyfolder_clicked)
|
||||
btn_ChkDuplicate = QPushButton("중복 검사 및 제거")
|
||||
btn_ChkDuplicate.clicked.connect(self.on_btn_ChkDuplicate_clicked)
|
||||
btn_Archive = QPushButton("압축 및 데이터 저장")
|
||||
btn_Archive.clicked.connect(self.on_btn_Archive_clicked)
|
||||
btn_EnterCalibre = QPushButton("컬리버에 삽입")
|
||||
btn_EnterCalibre.clicked.connect(self.on_btn_EnterCalibre_clicked)
|
||||
|
||||
layout.addWidget(btn_Emptyfolder)
|
||||
layout.addWidget(btn_ChkDuplicate)
|
||||
layout.addWidget(btn_Archive)
|
||||
layout.addWidget(btn_EnterCalibre)
|
||||
|
||||
return layout
|
||||
|
||||
#
|
||||
def MakeUI_Right(self):
|
||||
layout_top = QHBoxLayout()
|
||||
self.edit_DB = QLineEdit(self)
|
||||
self.edit_DB.setReadOnly(True)
|
||||
self.edit_DB.setText("...")
|
||||
btn_DB = QPushButton("...")
|
||||
btn_DB.setFixedWidth(50)
|
||||
btn_DB.clicked.connect(self.on_btnDB_clicked)
|
||||
layout_top.addWidget(self.edit_DB)
|
||||
layout_top.addWidget(btn_DB)
|
||||
|
||||
self.tableWidget_DB = QTableWidget()
|
||||
self.tableWidget_DB.verticalHeader().setVisible(False)
|
||||
self.tableWidget_DB.setColumnCount(5)
|
||||
self.tableWidget_DB.setHorizontalHeaderLabels(["Title", "Author", "Cover", "Exts", "ID"])
|
||||
self.tableWidget_DB.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
|
||||
self.tableWidget_DB.setSelectionBehavior(QAbstractItemView.SelectRows)
|
||||
self.tableWidget_DB.setSelectionMode(QAbstractItemView.SingleSelection)
|
||||
self.tableWidget_DB.itemSelectionChanged.connect(self.on_tableWidget_DB_itemSelectionChanged)
|
||||
|
||||
layout = QVBoxLayout()
|
||||
layout.addLayout(layout_top)
|
||||
layout.addWidget(self.tableWidget_DB)
|
||||
|
||||
return layout
|
||||
|
||||
#
|
||||
def MakeUI(self):
|
||||
layout_L = self.MakeUI_Left()
|
||||
layout_C = self.MakeUI_Center()
|
||||
layout_R = self.MakeUI_Right()
|
||||
|
||||
# 레이아웃 설정
|
||||
layout = QHBoxLayout()
|
||||
layout.addLayout(layout_L, stretch = 10)
|
||||
layout.addLayout(layout_C, stretch = 1)
|
||||
layout.addLayout(layout_R, stretch = 10)
|
||||
|
||||
return layout
|
||||
|
||||
#
|
||||
def initUI(self):
|
||||
layout = self.MakeUI()
|
||||
|
||||
# 레이아웃을 윈도우에 적용
|
||||
central_widget = QWidget()
|
||||
central_widget.setLayout(layout)
|
||||
self.setCentralWidget(central_widget)
|
||||
self.setWindowTitle('Manga Database')
|
||||
self.resize(800, 600)
|
||||
self.show()
|
||||
|
||||
# 테이블의 특정 행에 배경색을 설정한다
|
||||
# nRow: 배경색을 설정할 행 번호, color: 배경색 (Qt.GlobalColor)
|
||||
def SrcTableRowBgColor(self, nRow:int, color:Qt.GlobalColor) -> None:
|
||||
for col in range(self.tableWidget_Src.columnCount()):
|
||||
item = self.tableWidget_Src.item(nRow, col)
|
||||
if item:
|
||||
item.setBackground(Qt.GlobalColor(color))
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user