2016-07-06 2 views
2

Ich habe 3 QLabels von 1024x512 übereinander (als QPixmaps). Die unterste Schicht empfängt RGB-Datenstrom, die zweite Schicht RGBA-Datenstrom (so dass die Deckkraft verringert werden kann, um die unterste Schicht zu sehen), und schließlich ist die dritte Schicht eine Beschriftungs-Überlagerung zum Zeichnen. Ich versuche, zum Zeitpunkt des Anrufs ein Speicherabbild des aktuellen Benutzers im Fenster (nicht im Vollbildmodus) zu erstellen. Jede Hilfe oder Anweisungen nach unten (Klassen, Mitglieder, Beispiele, etc.) würde sehr geschätzt werden.Qt: Screen Shot

+0

ich alle 3 'QLabel's vorausgesetzt werden unter dem gleichen' QWidget' Eltern (vielleicht ein 'QStackedWidget' oder' QStackedLayout' verwenden)? Wenn ja, könnte es sich lohnen, [QWidget :: render] (http://doc.qt.io/qt-5/qwidget.html#render) zu betrachten. –

+0

Ich passte die x-y-Positionen von allen 3, so dass jede Beschriftung direkt über dem Hauptfenster war. Das QScreen-Klassenmitglied grabWindow (WId, x, y, w, h) arbeitete für das, was ich versuchte. – Mike

Antwort

1

es selbst gelöst ...

QScreen *This_Screen = QGuiApplication::primaryScreen(); 
This_Pixmap = This_Screen->grabWindow(QWidget::winId(),x,y,1024,512);