from PyQt5.QtWidgets import QWidget, QVBoxLayout
from PyQt5.QtCore import Qt
from qfluentwidgets import SubtitleLabel, BodyLabel, HorizontalSeparator, ImageLabel, FluentLabelBase, TitleLabel
import sys
import os

def resource_path(relative_path):
    """获取资源文件的绝对路径，兼容打包和开发环境
    对于 logo 文件，使用打包的临时目录（只有 logo 被打包）
    对于其他资源，使用可执行文件所在目录
    """
    if getattr(sys, 'frozen', False):
        # 打包环境
        if 'logo' in relative_path:
            # logo 文件使用打包的临时目录
            if hasattr(sys, '_MEIPASS'):
                return os.path.join(sys._MEIPASS, relative_path)
        # 其他资源使用可执行文件所在目录
        exe_dir = os.path.dirname(sys.executable)
        return os.path.join(exe_dir, relative_path)
    # 开发环境
    return os.path.join(os.path.abspath("."), relative_path)

class HomeInterface(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setObjectName("homeInterface")

        # 外层居中布局
        outer_layout = QVBoxLayout(self)
        outer_layout.setContentsMargins(0, 0, 0, 0)
        outer_layout.setSpacing(0)
        outer_layout.addStretch()

        # 内容布局
        content_layout = QVBoxLayout()
        content_layout.setSpacing(24)
        content_layout.setContentsMargins(48, 48, 48, 48)

        # Logo
        logo = ImageLabel(resource_path('assets/logo/MRobot.png'))
        logo.scaledToHeight(80)
        content_layout.addWidget(logo, alignment=Qt.AlignHCenter) # 居中对齐

        content_layout.addSpacing(8)
        content_layout.addStretch()

        # 主标题
        title = TitleLabel("MRobot Toolbox")
        title.setAlignment(Qt.AlignCenter)
        content_layout.addWidget(title)

        # 副标题
        subtitle = BodyLabel("现代化，多功能机器人开发工具箱")
        subtitle.setAlignment(Qt.AlignCenter)
        content_layout.addWidget(subtitle)

        # 欢迎语
        welcome = BodyLabel("欢迎使用 MRobot Toolbox！一站式支持代码生成、硬件管理、串口调试与零件库下载。")
        welcome.setAlignment(Qt.AlignCenter)
        content_layout.addWidget(welcome)

        content_layout.addSpacing(16)
        content_layout.addStretch()

        # 加到主布局
        outer_layout.addLayout(content_layout)
        outer_layout.addStretch()

        # 版权信息置底
        copyright_label = BodyLabel("© 2025 MRobot | Powered by QUT RM&RCer")
        copyright_label.setAlignment(Qt.AlignCenter)
        copyright_label.setStyleSheet("font-size: 13px;")
        outer_layout.addWidget(copyright_label)
        outer_layout.addSpacing(18)