This commit is contained in:
2026-07-17 15:27:33 +08:00
parent 6bb68eb6b7
commit 207cbde4bc
14 changed files with 498 additions and 301 deletions
+52
View File
@@ -0,0 +1,52 @@
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)