Screenshot - zu shootendes Fenster bestimmen
Screenshot - zu shootendes Fenster bestimmen
Ich habe das Problem, dass wenn ich einen Screenshot per QT-Funktion habe ich als oberstes Fenster das "save as" Fenster. Wie kann ich bestimmen, dass das Fenster darunter ein sogar von einem bestimmten Fenster ein Screenshot gemacht wird....
-
CaptnChaos
- Beiträge: 605
- Registriert: 28. Juni 2007 15:01
- Kontaktdaten:
Warum den via printscreen und nicht direkt via Qt-Methoden? Qt kann doch so wunderbar sich selbst rendern..
Code: Alles auswählen
QPixmap QPixmap::grabWidget ( QWidget * widget, const QRect & rectangle )
QPixmap QPixmap::grabWidget ( QWidget * widget, int x = 0, int y = 0, int width = -1, int height = -1 )
QPixmap QPixmap::grabWindow ( WId window, int x = 0, int y = 0, int width = -1, int height = -1 )
bool QPixmap::save ( const QString & fileName, const char * format = 0, int quality = -1 ) const
so soehts bei mir aus.
danke für die tipps
ich dachte ich gehe einfach über die fenster Id ran..void MainWindow::newScreenshot(){
QTimer::singleShot(0, this, SLOT(shootScreen()));
saveScreenshot();
}
void MainWindow::shootScreen() {
originalPixmap = QPixmap::grabWindow(QApplication::desktop()->winId());
}
void MainWindow::saveScreenshot() {
QString format = "png";
QString initialPath = tr("untitled.") + format;
QString fileName = QFileDialog::getSaveFileName(this, tr("Save as"),
initialPath,
tr("%1 Files (*.%2);;All Files (*)")
.arg(format.toUpper())
.arg(format));
if (!fileName.isEmpty())
originalPixmap.save(fileName, format.toAscii());
}
danke für die tipps
-
CaptnChaos
- Beiträge: 605
- Registriert: 28. Juni 2007 15:01
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ich glaube KSnapshot geht so vor
Mouse global grabben
Auf MouseKlick warten
Über QDesktopWidget das darunterliegende Fenster
D) bestimmen
per QPixmap QPixmap::grabWindow ( WId window, ...) den Screenshot anfertigen
Zumindest würde ich es so machen.
Mouse global grabben
Auf MouseKlick warten
Über QDesktopWidget das darunterliegende Fenster
per QPixmap QPixmap::grabWindow ( WId window, ...) den Screenshot anfertigen
Zumindest würde ich es so machen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung