from PySide6.QtWidgets import QDialog, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QTextEdit, QPushButton, QMessageBox from PySide6.QtCore import Qt from typing import Tuple class AddProjectDialog(QDialog): def __init__(self, parent=None): super().__init__(parent) self.setup_ui() def setup_ui(self): self.setWindowTitle("添加项目") layout = QVBoxLayout() # 项目名称输入 self.name_label = QLabel("项目名称:") self.name_edit = QLineEdit() self.name_edit.setPlaceholderText("请输入项目名称") # 项目描述输入 self.desc_label = QLabel("项目描述:") self.desc_edit = QTextEdit() self.desc_edit.setPlaceholderText("请输入项目描述") # 按钮 self.btn_layout = QHBoxLayout() self.ok_btn = QPushButton("确定") self.cancel_btn = QPushButton("取消") self.btn_layout.addWidget(self.ok_btn) self.btn_layout.addWidget(self.cancel_btn) # 添加到主布局 layout.addWidget(self.name_label) layout.addWidget(self.name_edit) layout.addWidget(self.desc_label) layout.addWidget(self.desc_edit) layout.addLayout(self.btn_layout) self.setLayout(layout) # 连接信号 self.ok_btn.clicked.connect(self.accept) self.cancel_btn.clicked.connect(self.reject) def get_project_data(self) -> Tuple[str, str]: return self.name_edit.text().strip(), self.desc_edit.toPlainText().strip()