Der folgende Artikel beschreibt, wie wir die Rahmengeometrie des Bildansichtsobjekts in PyQTGaph erhalten können. Die Rahmengeometrie ist die Geometrie der Bildansicht, die dem Hauptfenster entspricht. Sie beschreibt die Position und Größe der Bildansicht. PyQtGraph ist eine Python-Bibliothek für Grafiken und Benutzeroberflächen für Funktionen, die üblicherweise für Entwurfs- und Wissenschaftsanwendungen erforderlich sind. Es bietet schnelle, interaktive Grafiken für die Anzeige von Daten (Diagramme, Videos usw.). Implementiert viele Funktionen wie die Anzeige von 2D- und 3D-Bilddaten. Bei 3D-Daten wird ein Schieberegler für die Z-Achse angezeigt, mit dem der Benutzer auswählen kann, welcher Rahmen angezeigt werden soll. Zeigt ein Histogramm der Bilddaten mit einem beweglichen Bereich an, der die Dunkel- / Lichtpegel definiert, und der bearbeitbare Farbverlauf bietet eine Farbsuchtabelle als Referenz.

Zum Erstellen einer Bildansicht wird ImageView() verwendet 

Syntax:

imv = pg.ImageView()
 

Um die Geometrie des Frames zu erhalten, wird die FrameGeometry() -Methode mit dem Bildansichtsobjekt verwendet. Es akzeptiert keine Argumente und gibt ein QRect-Objekt zurück.



Syntax :

imv.frameGeometry()

Implementierung:
 

from PyQt5.QtWidgets import *
  
import sys 
  
import numpy as np 
  
import pyqtgraph as pg 
from PyQt5.QtGui import *
from PyQt5.QtCore import *
  
  
class ImageView(pg.ImageView): 
  
    
    
    def __init__(self, *args, **kwargs): 
        pg.ImageView.__init__(self, *args, **kwargs) 
  
class Window(QMainWindow): 
  
    def __init__(self): 
        super().__init__() 
  
        
        self.setWindowTitle("PyQtGraph") 
  
        
        self.setGeometry(100, 100, 600, 500) 
  
  
        
        icon = QIcon("skin.png") 
  
        
        self.setWindowIcon(icon) 
  
        
        self.UiComponents() 
  
        
        self.show() 
  
        
        
  
    
    def UiComponents(self): 
  
        
        widget = QWidget() 
  
        
        label = QLabel("Geeksforgeeks Image View") 
  
        
        label.setMinimumWidth(130) 
  
        
        label.setWordWrap(True) 
  
        
        pg.setConfigOptions(antialias=True) 
  
        
        imv = ImageView() 
  
        
        img = pg.gaussianFilter(np.random.normal(size=(200, 200)), (5, 5)) * 20 + 100
  
        
        img = img[np.newaxis, :, :] 
  
        
        decay = np.exp(-np.linspace(0, 0.3, 100))[:, np.newaxis, np.newaxis] 
  
        
        data = np.random.normal(size=(100, 200, 200)) 
        data += img * decay 
        data += 2
  
        
        sig = np.zeros(data.shape[0]) 
        sig[30:] += np.exp(-np.linspace(1, 10, 70)) 
        sig[40:] += np.exp(-np.linspace(1, 10, 60)) 
        sig[70:] += np.exp(-np.linspace(1, 10, 30)) 
  
        sig = sig[:, np.newaxis, np.newaxis] * 3
        data[:, 50:60, 30:40] += sig 
  
        
        
        imv.setImage(data, xvals=np.linspace(1., 3., data.shape[0])) 
  
        
        colors = [ 
            (0, 0, 0), 
            (4, 5, 61), 
            (84, 42, 55), 
            (15, 87, 60), 
            (208, 17, 141), 
            (255, 255, 255) 
        ] 
  
        
        cmap = pg.ColorMap(pos=np.linspace(0.0, 1.0, 6), color=colors) 
  
        
        imv.setColorMap(cmap) 
  
        
        layout = QGridLayout() 
  
        
        label.setFixedWidth(130) 
  
        
        widget.setLayout(layout) 
  
        
        layout.addWidget(label, 1, 0) 
  
        
        layout.addWidget(imv, 0, 1, 3, 1) 
  
        
        self.setCentralWidget(widget) 
  
        
        value = imv.frameGeometry() 
  
        
        label.setText("Frame Geometry : " + str(value)) 
  
  
  
App = QApplication(sys.argv) 
  
window = Window() 
  
sys.exit(App.exec()) 

Ausgabe :