Seite 1 von 1

Problem mit winId()-Methode

Verfasst: 26. September 2008 09:14
von AIL
Hallo!

Ich habe eine Methode geschrieben, die einen Screenshot machen soll. Dabei wollte ich möglichst nah an diesem Beispiel bleiben:

Code: Alles auswählen

originalPixmap = QPixmap::grabWindow(QApplication::desktop()->winId());
(Ist von: http://doc.trolltech.com/4.4/desktop-screenshot.html )

Mein Code sieht so aus:

Code: Alles auswählen

QPixmap::grabWindow(QApplication::desktop()->winId()).save(szFileName,0,-1);
Das Ganze scheitert bei mir allerdings aus einem, mir völlig unerklärlichen Grund beim Compilieren, wo ich folgende Meldung bekomme:

Code: Alles auswählen

../Display/DisplayWindow.cpp: In member function `void CDisplayWindow::ScreenShot(QString)':
../Display/DisplayWindow.cpp:1931: error: `winId' undeclared (first use this function)
../Display/DisplayWindow.cpp:1931: error: (Each undeclared identifier is reported only once for each function it appears in.)
Laut QT-Dokumentation ist winId() eine stinknormale Methode von QWidget und ich sehe keinen Grund, wieso ich die nicht benutzen können soll.

Wisst ihr vielleicht eine Antwort?

Verfasst: 26. September 2008 09:28
von AIL
Argh, okay ich hab's nun...

Gestern 'ne Stunde nach der Lösung gesucht. Bis heute gewartet, bis ich hier posten kann und dann liegt's an sowas:

Auch wenn winId() eine Methode von QWidget ist, so muss ich natürlich QDesktopWidget includen, um in diesem Fall drauf zugreifen zu können!

Ergo war die Lösung einfach das Hinzufügen der Zeile:

Code: Alles auswählen

#include <QDesktopWidget>
Das is mir jetzt bissl peinlich, bin ja eigentlich kein Anfänger mehr.