131 lines
5.5 KiB
Python
131 lines
5.5 KiB
Python
from PySide6.QtWidgets import QDialog, QVBoxLayout, QTabWidget, QWidget, QLabel, QTextEdit, QPushButton, QScrollArea, QHBoxLayout
|
|
from PySide6.QtCore import Qt
|
|
|
|
class UserManualDialog(QDialog):
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent)
|
|
self.setWindowTitle("사용설명서")
|
|
self.setMinimumSize(600, 500)
|
|
self.setup_ui()
|
|
|
|
def setup_ui(self):
|
|
layout = QVBoxLayout(self)
|
|
|
|
# 탭 위젯을 사용하여 각 기능별 설명을 분리합니다.
|
|
self.tab_widget = QTabWidget(self)
|
|
layout.addWidget(self.tab_widget)
|
|
|
|
# 예시: 로그인 및 회원가입, 공지사항, 금지어 관리, 기타 기능 등
|
|
self.add_manual_tab("로그인/회원가입", self.login_signup_manual())
|
|
self.add_manual_tab("공지사항", self.announcement_manual())
|
|
self.add_manual_tab("금지어 관리", self.keyword_management_manual())
|
|
self.add_manual_tab("A/S 문의", self.as_manual())
|
|
|
|
# 닫기 버튼
|
|
btn_close = QPushButton("닫기")
|
|
btn_close.clicked.connect(self.accept)
|
|
layout.addWidget(btn_close)
|
|
|
|
self.setLayout(layout)
|
|
|
|
def add_manual_tab(self, title, content_widget):
|
|
"""제목과 내용을 받아 탭에 추가합니다."""
|
|
tab = QWidget()
|
|
tab_layout = QVBoxLayout(tab)
|
|
tab_layout.addWidget(content_widget)
|
|
tab.setLayout(tab_layout)
|
|
self.tab_widget.addTab(tab, title)
|
|
|
|
def login_signup_manual(self):
|
|
"""로그인/회원가입 기능 설명 (예시)"""
|
|
widget = QScrollArea()
|
|
widget.setWidgetResizable(True)
|
|
content = QWidget()
|
|
layout = QVBoxLayout(content)
|
|
title = QLabel("로그인 및 회원가입")
|
|
title.setStyleSheet("font-size: 18px; font-weight: bold;")
|
|
layout.addWidget(title)
|
|
text = QTextEdit()
|
|
text.setReadOnly(True)
|
|
text.setHtml("""
|
|
<h3>로그인</h3>
|
|
<p>이메일과 비밀번호를 입력하여 로그인합니다.
|
|
저장 옵션을 선택하면 다음 로그인 시 정보를 불러옵니다.</p>
|
|
<h3>회원가입</h3>
|
|
<p>회원가입 버튼을 누르면, 공지사항과 라이센스 내용을 확인한 후,
|
|
필요한 정보를 입력하여 회원가입을 진행합니다. 이메일 인증이 완료되면 회원가입이 완료됩니다.</p>
|
|
""")
|
|
layout.addWidget(text)
|
|
widget.setWidget(content)
|
|
return widget
|
|
|
|
def announcement_manual(self):
|
|
"""공지사항 기능 설명 (예시)"""
|
|
widget = QScrollArea()
|
|
widget.setWidgetResizable(True)
|
|
content = QWidget()
|
|
layout = QVBoxLayout(content)
|
|
title = QLabel("공지사항 기능")
|
|
title.setStyleSheet("font-size: 18px; font-weight: bold;")
|
|
layout.addWidget(title)
|
|
text = QTextEdit()
|
|
text.setReadOnly(True)
|
|
text.setHtml("""
|
|
<h3>공지사항 확인</h3>
|
|
<p>로그인 후, 최신 공지사항이 자동으로 표시됩니다.</p>
|
|
<ul>
|
|
<li>공지사항 목록은 1번부터 5번까지의 항목으로 구성됩니다.</li>
|
|
<li>각 공지사항을 클릭하면 상세 내용이 팝업 창으로 확장되어 보여집니다.</li>
|
|
</ul>
|
|
<h3>업데이트 및 중요 알림</h3>
|
|
<p>서버 점검, 출시 소식, 고객 지원 등의 중요 정보가 포함되어 있습니다.</p>
|
|
""")
|
|
layout.addWidget(text)
|
|
widget.setWidget(content)
|
|
return widget
|
|
|
|
def keyword_management_manual(self):
|
|
"""금지어 관리 기능 설명 (예시)"""
|
|
widget = QScrollArea()
|
|
widget.setWidgetResizable(True)
|
|
content = QWidget()
|
|
layout = QVBoxLayout(content)
|
|
title = QLabel("금지어 관리")
|
|
title.setStyleSheet("font-size: 18px; font-weight: bold;")
|
|
layout.addWidget(title)
|
|
text = QTextEdit()
|
|
text.setReadOnly(True)
|
|
text.setHtml("""
|
|
<h3>금지어 추가 및 수정</h3>
|
|
<p>사용자는 금지어를 추가, 수정, 삭제할 수 있습니다.</p>
|
|
<ul>
|
|
<li>로컬 금지어는 항상 밑줄로 표시되며, 공통 금지어는 함께 사용하기 옵션에 따라 밑줄이 표시됩니다.</li>
|
|
<li>검증 버튼을 통해 키프리스 결과를 확인할 수 있으며, 검증 결과에 따라 '등록' 또는 '안전' 상태가 표시됩니다.</li>
|
|
</ul>
|
|
""")
|
|
layout.addWidget(text)
|
|
widget.setWidget(content)
|
|
return widget
|
|
|
|
def as_manual(self):
|
|
"""A/S 문의 기능 설명 (예시)"""
|
|
widget = QScrollArea()
|
|
widget.setWidgetResizable(True)
|
|
content = QWidget()
|
|
layout = QVBoxLayout(content)
|
|
title = QLabel("A/S 문의 및 고객 지원")
|
|
title.setStyleSheet("font-size: 18px; font-weight: bold;")
|
|
layout.addWidget(title)
|
|
text = QTextEdit()
|
|
text.setReadOnly(True)
|
|
text.setHtml("""
|
|
<h3>실시간 문의</h3>
|
|
<p>사용자는 A/S 문의 버튼을 통해 관리자와 실시간 대화할 수 있습니다.
|
|
(예: 텔레그램 봇 연동)</p>
|
|
<h3>문의 내용 기록</h3>
|
|
<p>모든 대화 내역은 안전하게 암호화되어 저장되며, 서비스 개선에 활용됩니다.</p>
|
|
""")
|
|
layout.addWidget(text)
|
|
widget.setWidget(content)
|
|
return widget
|