113 lines
4.3 KiB
Python
113 lines
4.3 KiB
Python
from PyQt5.QtWidgets import QWidget, QLineEdit, QDesktopWidget, QVBoxLayout, QLabel, QPushButton, QHBoxLayout
|
|
from PyQt5.QtCore import Qt
|
|
import pyperclip
|
|
|
|
class ApiKeyWidget(QWidget):
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent)
|
|
self.setWindowTitle("API Keys")
|
|
self.setGeometry(100, 100, 400, 400)
|
|
|
|
self.layout = QVBoxLayout()
|
|
self.setLayout(self.layout)
|
|
|
|
# 초기화된 UI 구성 요소를 저장할 리스트
|
|
self.key_widgets = []
|
|
|
|
self.ss_id = QLineEdit()
|
|
self.ss_pw = QLineEdit()
|
|
self.ok_btn = QPushButton("스마트스토어 계정 저장")
|
|
|
|
# 확인 버튼 추가 및 초기화
|
|
self.confirm_button = QPushButton("확인")
|
|
self.confirm_button.clicked.connect(self.close)
|
|
# self.layout.addWidget(self.confirm_button)
|
|
|
|
def call_UI(self, api_keys, current_api_keys = None):
|
|
# 기존 위젯 제거
|
|
self.clear_layout()
|
|
|
|
print(f"current_api_keys\n{current_api_keys}")
|
|
|
|
|
|
def ok_btn_clicked():
|
|
current_api_keys['스마트스토어']['업로드할스마트스토어계정id'] = self.ss_id.text()
|
|
print(f"업로드할스마트스토어계정ID : {self.ss_id.text()}")
|
|
current_api_keys['스마트스토어']['업로드할스마트스토어계정pw'] = self.ss_pw.text()
|
|
print(f"업로드할스마트스토어계정PW : {self.ss_pw.text()}")
|
|
pass
|
|
|
|
if current_api_keys:
|
|
self.ss_id.setAlignment(Qt.AlignLeft)
|
|
self.ss_id.setPlaceholderText("스마트스토어 계정의 ID")
|
|
self.ss_id.setVisible(True)
|
|
self.ss_id.setText(current_api_keys['스마트스토어']['업로드할스마트스토어계정id'])
|
|
self.ss_pw.setAlignment(Qt.AlignLeft)
|
|
self.ss_pw.setPlaceholderText("스마트스토어 계정의 비밀번호")
|
|
self.ss_pw.setVisible(True)
|
|
self.ss_pw.setText(current_api_keys['스마트스토어']['업로드할스마트스토어계정pw'])
|
|
self.ok_btn.setVisible(True)
|
|
self.ok_btn.clicked.connect(ok_btn_clicked)
|
|
|
|
self.layout.addWidget(self.ss_id)
|
|
self.layout.addWidget(self.ss_pw)
|
|
self.layout.addWidget(self.ok_btn)
|
|
|
|
|
|
if api_keys:
|
|
for key, value in api_keys.items():
|
|
|
|
# print(f"call_UI || api_keys.items() : {api_keys.items()}")
|
|
print(f"call_UI || key : {key}")
|
|
print(f"call_UI || value : {value}")
|
|
h_layout = QHBoxLayout()
|
|
|
|
key_label = QLabel(f"[{key}] : ")
|
|
value_label = QLabel(f"{value}")
|
|
copy_button = QPushButton("키 복사")
|
|
|
|
copy_button.clicked.connect(lambda checked, v=value: self.copy_to_clipboard(v))
|
|
|
|
h_layout.addWidget(key_label)
|
|
h_layout.addWidget(value_label)
|
|
h_layout.addWidget(copy_button)
|
|
|
|
|
|
self.layout.insertLayout(self.layout.count() - 1, h_layout)
|
|
self.key_widgets.append((key_label, value_label, copy_button))
|
|
|
|
# self.layout.addWidget(self.confirm_button)
|
|
|
|
self.center()
|
|
|
|
self.show()
|
|
|
|
def clear_layout(self):
|
|
for widgets in self.key_widgets:
|
|
for widget in widgets:
|
|
widget.deleteLater()
|
|
self.key_widgets.clear()
|
|
|
|
if self.ss_id:
|
|
self.ss_id.setVisible(False)
|
|
self.ss_pw.setVisible(False)
|
|
self.ok_btn.setVisible(False)
|
|
|
|
def copy_to_clipboard(self, value):
|
|
pyperclip.copy(value)
|
|
print(f"Copied to clipboard: {value}")
|
|
|
|
def center(self):
|
|
# 부모 위젯의 중앙에 위치하도록 조정
|
|
if self.parent():
|
|
parent_geometry = self.parent().frameGeometry()
|
|
self_geometry = self.frameGeometry()
|
|
center_point = parent_geometry.center()
|
|
self_geometry.moveCenter(center_point)
|
|
self.move(self_geometry.topLeft())
|
|
else:
|
|
screen_geometry = self.frameGeometry()
|
|
screen_center = QDesktopWidget().availableGeometry().center()
|
|
screen_geometry.moveCenter(screen_center)
|
|
self.move(screen_geometry.topLeft())
|