This commit is contained in:
2025-11-03 22:28:58 +08:00
parent c2aa65193d
commit 5645870954
13 changed files with 522 additions and 141 deletions

View File

@@ -8,7 +8,6 @@ from qfluentwidgets import (Action, InfoBar, InfoBarPosition, LineEdit, MenuAnim
PrimarySplitPushButton, PushButton, RoundMenu, ScrollArea)
from app.core import DeleteTagThread, userConfig, lang
from app.view.widgets.add_tag_messageBox import AddTagMessageBox
class TagsScrollArea(ScrollArea):
@@ -140,7 +139,7 @@ class TagsScrollArea(ScrollArea):
def deleteTag(self, tagId):
self.deleteTagThread = DeleteTagThread(tagId)
self.deleteTagThread.successDeleteSignal.connect(
lambda: self._onTagDeleteError(tagId)
lambda: self._onTagDeleteSuccess(tagId)
)
self.deleteTagThread.errorSignal.connect(self._onTagDeleteError)
self.deleteTagThread.start()
@@ -156,7 +155,7 @@ class TagsScrollArea(ScrollArea):
self.window(),
)
def _onTagDeleteError(self, tagId):
def _onTagDeleteSuccess(self, tagId):
self.removeTag(tagId)
InfoBar.success(
"成功",
@@ -214,43 +213,20 @@ class TagWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.tagScrollArea = TagsScrollArea(self)
self.addPushButton = PushButton(lang("添加标签"), self)
# 移除添加标签按钮
logger.debug("初始化标签管理组件")
self.setupUi()
self.connectSignals()
# 移除信号连接
def setupUi(self):
"""初始化UI"""
self.hBoxLayout = QHBoxLayout(self)
self.hBoxLayout.addWidget(self.tagScrollArea)
self.hBoxLayout.addSpacing(10)
self.hBoxLayout.addWidget(self.addPushButton, Qt.AlignmentFlag.AlignRight)
def connectSignals(self):
"""连接信号与槽"""
logger.debug("连接标签管理组件信号")
self.addPushButton.clicked.connect(self.addTag)
def addTag(self):
w = AddTagMessageBox(self.window())
w.successAddTagSignal.connect(self.onAddTagSuccess)
if w.exec():
...
def onAddTagSuccess(self, name, result):
"""处理标签添加成功事件"""
InfoBar.success(
"成功",
"标签添加成功",
Qt.Orientation.Horizontal,
True,
1000,
InfoBarPosition.TOP_RIGHT,
self.window(),
)
self.tagScrollArea.addTag(result["data"], name)
# 移除添加标签按钮的布局设置
# 确保标签区域能够充分利用空间
self.hBoxLayout.addStretch()
class SearchWidget(QWidget):
@@ -262,31 +238,12 @@ class SearchWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.searchLineEdit = LineEdit(self)
self.searchButton = PrimarySplitPushButton(lang("仓内搜索"), self)
self.menu = RoundMenu(parent=self)
self.menu.addAction(
Action(
lang("仓内搜索"),
triggered=lambda: self.changeButtonText(lang("仓内搜索")),
)
)
self.menu.addAction(
Action(
lang("站内搜索"),
triggered=lambda: self.changeButtonText(lang("站内搜索")),
)
)
self.searchButton.setFlyout(self.menu)
self.searchButton = PillPushButton(lang("搜索"), self) # 使用已导入的PillPushButton
logger.debug("初始化搜索组件")
self.setupUi()
def changeButtonText(self, text):
self.searchButton.setText(text)
def setupUi(self):
"""初始化UI"""
self.searchLineEdit.setPlaceholderText(lang("搜索文件"))