修复视图浏览bug

This commit is contained in:
copper 2022-06-01 20:46:45 +08:00
parent a5060225f1
commit 873f211957

View File

@ -8,6 +8,7 @@ import multiprocessing
# from gui.default import get_default_category_colors, get_default_category_keys # from gui.default import get_default_category_colors, get_default_category_keys
# from os import truncate # from os import truncate
from pathlib import Path from pathlib import Path
import pdb
from PyQt5.QtCore import QSettings, QUrl, pyqtSignal, Qt, QVariant from PyQt5.QtCore import QSettings, QUrl, pyqtSignal, Qt, QVariant
from PyQt5.QtWidgets import QMessageBox, QWidget, QHBoxLayout from PyQt5.QtWidgets import QMessageBox, QWidget, QHBoxLayout
from PyQt5.QtGui import QColor, QDragEnterEvent, QDropEvent from PyQt5.QtGui import QColor, QDragEnterEvent, QDropEvent
@ -32,6 +33,13 @@ class DoubleCanvas(QWidget):
self.setContextMenuPolicy(Qt.CustomContextMenu) self.setContextMenuPolicy(Qt.CustomContextMenu)
self.mapcanva1 = CanvasWidget(self) self.mapcanva1 = CanvasWidget(self)
self.mapcanva2 = CanvasWidget(self) self.mapcanva2 = CanvasWidget(self)
self.mapPanTool1 = QgsMapToolPan(self.mapcanva1)
self.mapPanTool2 = QgsMapToolPan(self.mapcanva2)
self.zoomInTool1 = QgsMapToolZoom(self.mapcanva1, False)
self.zoomOutTool1 = QgsMapToolZoom(self.mapcanva1, True)
self.zoomInTool2 = QgsMapToolZoom(self.mapcanva2, False)
self.zoomOutTool2 = QgsMapToolZoom(self.mapcanva2, True)
self.mapcanva1.setCanvasColor(QColor(0, 0, 0)) self.mapcanva1.setCanvasColor(QColor(0, 0, 0))
self.mapcanva2.setCanvasColor(QColor(0, 0, 0)) self.mapcanva2.setCanvasColor(QColor(0, 0, 0))
@ -68,20 +76,20 @@ class DoubleCanvas(QWidget):
def set_pan_tool(self, s): def set_pan_tool(self, s):
# print('set pan tool') # print('set pan tool')
if s: if s:
self.mapcanva1.setMapTool(QgsMapToolPan(self.mapcanva1)) self.mapcanva1.setMapTool(self.mapPanTool1)
self.mapcanva2.setMapTool(QgsMapToolPan(self.mapcanva2)) self.mapcanva2.setMapTool(self.mapPanTool2)
def set_zoom_in(self, s): def set_zoom_in(self, s):
# print('set zoom in') # print('set zoom in')
if s: if s:
self.mapcanva1.setMapTool(QgsMapToolZoom(self.mapcanva1, False)) self.mapcanva1.setMapTool(self.zoomInTool1)
self.mapcanva2.setMapTool(QgsMapToolZoom(self.mapcanva2, False)) self.mapcanva2.setMapTool(self.zoomInTool2)
def set_zoom_out(self, s): def set_zoom_out(self, s):
# print('set zoom out') # print('set zoom out')
if s: if s:
self.mapcanva1.setMapTool(QgsMapToolZoom(self.mapcanva1, True)) self.mapcanva1.setMapTool(self.zoomOutTool1)
self.mapcanva2.setMapTool(QgsMapToolZoom(self.mapcanva2, True)) self.mapcanva2.setMapTool(self.zoomOutTool2)
def update_layer(self): def update_layer(self):
layers = Project().layers layers = Project().layers
@ -148,10 +156,13 @@ class CanvasWidget(QgsMapCanvas):
def enterEvent(self,e): def enterEvent(self,e):
self.is_main = True self.is_main = True
# print(e) # print(e)
super().enterEvent(e)
pass pass
def leaveEvent(self, e): def leaveEvent(self, e):
self.is_main = False self.is_main = False
super().leaveEvent(e)
pass pass
def set_extent(self, extent:QgsRectangle): def set_extent(self, extent:QgsRectangle):
@ -178,7 +189,7 @@ class CanvasWidget(QgsMapCanvas):
self.layers = [] self.layers = []
self.grid_layers = [] self.grid_layers = []
self.is_main = False self.is_main = False
self.setCanvasColor(Qt.white) self.setCanvasColor(Qt.black)
self.enableAntiAliasing(True) self.enableAntiAliasing(True)
self.setAcceptDrops(False) self.setAcceptDrops(False)