ChangePercenty2/ui/apikey_widget.py

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())