main.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from qgis.PyQt.QtCore import Qt
  2. from qgis.PyQt.QtWidgets import QAction, QMessageBox
  3. from .searchDock import SearchDockWidget
  4. from ..icons import icons
  5. from ...utils import PluginConfig
  6. conf = PluginConfig()
  7. class SearchAction(QAction):
  8. def __init__(
  9. self,
  10. iface,
  11. parent=None,
  12. ):
  13. super().__init__(parent)
  14. self.parent = parent
  15. self.iface = iface
  16. self.setIcon(icons["search"])
  17. self.setText("文件服务器")
  18. self.searchdockwidget = SearchDockWidget(self.iface)
  19. self.searchdockwidget.visibilityChanged.connect(self.onDockVisibilityChanged)
  20. self.iface.addDockWidget(Qt.RightDockWidgetArea, self.searchdockwidget)
  21. self.searchdockwidget.hide()
  22. self.setCheckable(True)
  23. self.triggered.connect(self.openSearch)
  24. def openSearch(self):
  25. key = conf.get_key()
  26. if key == "":
  27. QMessageBox.warning(
  28. self.parent,
  29. "错误",
  30. "天地图Key未设置或Key无效",
  31. QMessageBox.Yes,
  32. QMessageBox.Yes,
  33. )
  34. else:
  35. if self.searchdockwidget.isHidden():
  36. self.searchdockwidget.show()
  37. else:
  38. self.searchdockwidget.hide()
  39. def onDockVisibilityChanged(self, is_visible):
  40. if not is_visible:
  41. self.setChecked(False)
  42. else:
  43. self.setChecked(True)
  44. def unload(self):
  45. self.iface.removeDockWidget(self.searchdockwidget)