支持group view自动缩放
This commit is contained in:
		
							parent
							
								
									ddb9708ce9
								
							
						
					
					
						commit
						30351d5b6d
					
				@ -137,16 +137,34 @@ class LabelsDockWidget(QtWidgets.QWidget, Ui_Form):
 | 
				
			|||||||
            else:
 | 
					            else:
 | 
				
			||||||
                check_box.setChecked(False)
 | 
					                check_box.setChecked(False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def zoom_to_group(self):
 | 
				
			||||||
 | 
					        selected_group = self.comboBox_group_select.currentText()
 | 
				
			||||||
 | 
					        polygons_in_group = [polygon for polygon, item in self.polygon_item_dict.items() 
 | 
				
			||||||
 | 
					                            if polygon.group == selected_group]
 | 
				
			||||||
 | 
					        if not polygons_in_group:
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					        min_x = min(min(vertex.x() for vertex in polygon.vertexs) for polygon in polygons_in_group)
 | 
				
			||||||
 | 
					        min_y = min(min(vertex.y() for vertex in polygon.vertexs) for polygon in polygons_in_group)
 | 
				
			||||||
 | 
					        max_x = max(max(vertex.x() for vertex in polygon.vertexs) for polygon in polygons_in_group)
 | 
				
			||||||
 | 
					        max_y = max(max(vertex.y() for vertex in polygon.vertexs) for polygon in polygons_in_group)
 | 
				
			||||||
 | 
					        margin = 20
 | 
				
			||||||
 | 
					        bounding_rect = QtCore.QRectF(min_x - margin, min_y - margin, max_x - min_x + 2*margin, max_y - min_y + 2*margin)
 | 
				
			||||||
 | 
					        self.mainwindow.view.fitInView(bounding_rect, QtCore.Qt.KeepAspectRatio)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def go_to_next_group(self):
 | 
					    def go_to_next_group(self):
 | 
				
			||||||
        current_index = self.comboBox_group_select.currentIndex()
 | 
					        current_index = self.comboBox_group_select.currentIndex()
 | 
				
			||||||
        max_index = self.comboBox_group_select.count() - 1
 | 
					        max_index = self.comboBox_group_select.count() - 1
 | 
				
			||||||
        if current_index < max_index:
 | 
					        if current_index < max_index:
 | 
				
			||||||
            self.comboBox_group_select.setCurrentIndex(current_index + 1)
 | 
					            self.comboBox_group_select.setCurrentIndex(current_index + 1)
 | 
				
			||||||
            self.set_group_polygon_visible()
 | 
					            self.set_group_polygon_visible()
 | 
				
			||||||
 | 
					            self.zoom_to_group()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def go_to_prev_group(self):
 | 
					    def go_to_prev_group(self):
 | 
				
			||||||
        current_index = self.comboBox_group_select.currentIndex()
 | 
					        current_index = self.comboBox_group_select.currentIndex()
 | 
				
			||||||
        if current_index > 0:
 | 
					        if current_index > 0:
 | 
				
			||||||
            self.comboBox_group_select.setCurrentIndex(current_index - 1)
 | 
					            self.comboBox_group_select.setCurrentIndex(current_index - 1)
 | 
				
			||||||
            self.set_group_polygon_visible()
 | 
					            self.set_group_polygon_visible()
 | 
				
			||||||
 | 
					            self.zoom_to_group()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user