init
This commit is contained in:
138
app/view/ownFiled_interface.py
Normal file
138
app/view/ownFiled_interface.py
Normal file
@@ -0,0 +1,138 @@
|
||||
# coding: utf-8
|
||||
|
||||
from loguru import logger
|
||||
from PyQt6.QtCore import Qt
|
||||
from PyQt6.QtWidgets import QHBoxLayout, QVBoxLayout, QWidget
|
||||
from qfluentwidgets import (
|
||||
InfoBar,
|
||||
InfoBarPosition,
|
||||
VerticalSeparator,
|
||||
)
|
||||
|
||||
from app.core import signalBus
|
||||
from app.view.widgets.ownfile_scroll_widget import OwnFileScrollWidget
|
||||
from app.view.widgets.ownFiled_widgets import SearchWidget, TagWidget
|
||||
from app.view.widgets.share_search_widgets import ShareSearchScrollWidget
|
||||
from app.view.widgets.ware_search_widgets import WareSearchScrollWidget
|
||||
|
||||
|
||||
class OwnFiledInterface(QWidget):
|
||||
"""主文件管理界面"""
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent=parent)
|
||||
self.setObjectName("OwnFiledInterface")
|
||||
self.currentPath = "/"
|
||||
|
||||
logger.debug("初始化主文件管理界面")
|
||||
|
||||
# 初始化组件
|
||||
self.searchWidget = SearchWidget(self)
|
||||
self.tagWidget = TagWidget(self)
|
||||
|
||||
self.ownFileScrollWidget = OwnFileScrollWidget(self)
|
||||
|
||||
self.wareSearchScrollWidget = WareSearchScrollWidget(self)
|
||||
self.wareSearchScrollWidget.hide()
|
||||
|
||||
self.shareSearchScrollWidget = ShareSearchScrollWidget(self)
|
||||
self.shareSearchScrollWidget.hide()
|
||||
|
||||
self.setupUi()
|
||||
self.connectSignals()
|
||||
|
||||
def setupUi(self):
|
||||
"""初始化UI"""
|
||||
logger.debug("设置主文件管理界面UI")
|
||||
|
||||
# 设置主布局
|
||||
self.initLayout()
|
||||
|
||||
def initLayout(self):
|
||||
"""初始化布局"""
|
||||
self.vBoxLayout = QVBoxLayout(self)
|
||||
self.vBoxLayout.setContentsMargins(10, 0, 10, 0)
|
||||
|
||||
# 创建顶部布局
|
||||
self.topLayout = QHBoxLayout()
|
||||
self.topLayout.setContentsMargins(0, 0, 0, 0)
|
||||
self.topLayout.setAlignment(
|
||||
Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignVCenter
|
||||
)
|
||||
self.topLayout.addWidget(
|
||||
self.tagWidget, 0, Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignLeft
|
||||
)
|
||||
self.topLayout.addSpacing(20)
|
||||
|
||||
self.verticalSeparator = VerticalSeparator(self)
|
||||
self.verticalSeparator.setFixedHeight(25)
|
||||
self.topLayout.addWidget(self.verticalSeparator)
|
||||
self.topLayout.addSpacing(20)
|
||||
|
||||
self.topLayout.addWidget(self.searchWidget, 0, Qt.AlignmentFlag.AlignTop)
|
||||
|
||||
# 添加所有组件到主布局
|
||||
self.vBoxLayout.addLayout(self.topLayout)
|
||||
self.vBoxLayout.addWidget(self.ownFileScrollWidget)
|
||||
self.vBoxLayout.addWidget(self.wareSearchScrollWidget)
|
||||
self.vBoxLayout.addWidget(self.shareSearchScrollWidget)
|
||||
|
||||
def tagSearch(self, types, keyword):
|
||||
self.wareSearchScrollWidget.show()
|
||||
self.ownFileScrollWidget.hide()
|
||||
self.wareSearchScrollWidget.wareSearch(types, keyword)
|
||||
|
||||
def search(self):
|
||||
keyword = self.searchWidget.searchLineEdit.text()
|
||||
searchType = self.searchWidget.searchButton.text()
|
||||
if keyword == "" or keyword == ".":
|
||||
InfoBar.warning(
|
||||
"注意",
|
||||
"搜索内容为空",
|
||||
Qt.Orientation.Horizontal,
|
||||
True,
|
||||
1000,
|
||||
InfoBarPosition.TOP_RIGHT,
|
||||
self.window(),
|
||||
)
|
||||
return
|
||||
if searchType == "仓内搜索":
|
||||
self.wareSearchScrollWidget.show()
|
||||
self.ownFileScrollWidget.hide()
|
||||
self.shareSearchScrollWidget.hide()
|
||||
self.wareSearchScrollWidget.wareSearch("keyword", keyword)
|
||||
self.tagWidget.tagScrollArea.clearChecked()
|
||||
elif searchType == "站内搜索":
|
||||
self.wareSearchScrollWidget.hide()
|
||||
self.ownFileScrollWidget.hide()
|
||||
self.shareSearchScrollWidget.show()
|
||||
self.shareSearchScrollWidget.shareSearch(keyword, 1)
|
||||
self.tagWidget.tagScrollArea.clearChecked()
|
||||
|
||||
def returnLinkageSwitchingPage(self):
|
||||
self.wareSearchScrollWidget.hide()
|
||||
self.shareSearchScrollWidget.hide()
|
||||
self.ownFileScrollWidget.show()
|
||||
self.tagWidget.tagScrollArea.clearChecked()
|
||||
self.searchWidget.searchLineEdit.clear()
|
||||
|
||||
def connectSignals(self):
|
||||
"""连接信号与槽"""
|
||||
logger.debug("连接主文件管理界面信号")
|
||||
|
||||
# 连接搜索信号
|
||||
|
||||
signalBus.dirOpenSignal.connect(
|
||||
lambda x: self.ownFileScrollWidget.onChangeDir(x)
|
||||
)
|
||||
signalBus.refreshFolderListSignal.connect(
|
||||
self.ownFileScrollWidget.refreshCurrentDirectory
|
||||
)
|
||||
self.wareSearchScrollWidget.returnSignal.connect(
|
||||
self.returnLinkageSwitchingPage
|
||||
)
|
||||
self.shareSearchScrollWidget.returnSignal.connect(
|
||||
self.returnLinkageSwitchingPage
|
||||
)
|
||||
self.searchWidget.searchButton.clicked.connect(self.search)
|
||||
self.tagWidget.tagScrollArea.tagClicked.connect(self.tagSearch)
|
||||
Reference in New Issue
Block a user