2012-04-30 10 views
7

Ich arbeite bei meinen Hausaufgaben in Qt Creator, wo ich zu QWidget male und ich muss einen Teil dieses QWdgets speichern.Wie erstellt man einen Screenshot von QWidget?

Ich habe versucht, dieses Problem zu lösen:

QPixmap pixmap; 
pixmap.copy(rectangle); // rectangle is part of QWidget, which I need to save 
pixmap.save("example.png"); 

Danke für die Hilfe.

Antwort

13

Sie können dafür QWidget::render verwenden. Angenommen rectangle ist ein QRect:

QPixmap pixmap(rectangle->size()); 
widget->render(&pixmap, QPoint(), QRegion(rectangle)); 
+1

Vielen Dank für die Antwort. Es funktioniert in meiner Vorstellung. – avalagne

+0

Wie speichern Sie es in einer Datei? – bachurim09

+0

@ bachurim09: der Code in der Frage macht das. Bitte überprüfen Sie auch die Dokumente für QPixmap. – Mat