Files
model_team_tools/core/plugin/plugins_card.py
T
2026-07-17 15:27:33 +08:00

52 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import os
import time
import logging
import threading
from .plugin_registry import Event
from PySide6.QtWidgets import QFrame
from PySide6.QtCore import Signal
from .plugins_card_ui import Ui_FramePluginsCard
logger = logging.getLogger(__name__)
class PluginsCard(QFrame, Ui_FramePluginsCard):
"""工具卡片类
继承自 QFrameQt 帧基类)和 Ui_FrameToolCardQt Designer 生成的 UI 界面)
负责显示工具的卡片界面,包含工具的图标、名称和描述。
"""
send_event_signal = Signal(Event,str)
def __init__(self, name: str, info:dict, parent=None) -> None:
super().__init__(parent)
self.setupUi(self)
self.name = name
self.info = info
self.initUI()
def initUI(self):
self.textBrowser.setReadOnly(True)
self.textBrowser.setMarkdown(self.to_card())
if self.info["local version"] is None:
self.pushButtonUpdate.setEnabled(False)
self.pushButtonUninstall.setEnabled(False)
else:
self.pushButtonInstall.setEnabled(False)
if self.info['remote version'] <= self.info['local version']:
self.pushButtonUpdate.setEnabled(False)
self.pushButtonInstall.clicked.connect(self.on_intsall_event)
def to_card(self):
card = f"# {self.name}\n\n"
card += f"**最新:** V{self.info['remote version']}\n\n"
if self.info['local version'] is None:
card += f"**当前:** 未安装!\n\n"
else:
card += f"**当前:** V{self.info['local version']}\n\n"
card += f"**描述:** {self.info['remote description']}"
return card
def on_intsall_event(self):
self.send_event_signal.emit(Event.Install, self.name)