from qgis.PyQt.QtCore import Qt from qgis.PyQt.QtWidgets import QAction from .ftpDock import FTPDockWidget from ..icons import icons class FTPAction(QAction): def __init__( self, iface, parent=None, ): super().__init__(parent) self.parent = parent self.iface = iface self.setIcon(icons["ftp"]) self.setText("文件服务器") self.ftpdockwidget = FTPDockWidget(self.iface) self.ftpdockwidget.visibilityChanged.connect(self.onDockVisibilityChanged) self.iface.addDockWidget(Qt.RightDockWidgetArea, self.ftpdockwidget) self.ftpdockwidget.hide() self.setCheckable(True) self.triggered.connect(self.openFTP) def openFTP(self): if self.ftpdockwidget.isHidden(): self.ftpdockwidget.show() else: self.ftpdockwidget.hide() def onDockVisibilityChanged(self, is_visible): if not is_visible: self.setChecked(False) else: self.setChecked(True) def unload(self): self.iface.removeDockWidget(self.ftpdockwidget)