tags:

views:

696

answers:

3

In Qt, how do I take a screenshot of a specific window (i.e. suppose I had Notepad up and I wanted to take a screenshot of the window titled "Untitled - Notepad")? In their screenshot example code, they show how to take a screenshot of the entire desktop:

originalPixmap = QPixmap::grabWindow(QApplication::desktop()->winId());

How would I get the winId() for a specific window (assuming I knew the window's title) in Qt?

Thanks

+2  A: 

I'm pretty sure that's platform-specific. winIds are HWNDs on Windows, so you could call FindWindow(NULL, "Untitled - Notepad") in the example you gave.

ChrisV
A: 

If you want a reference example for X11, check out KSnapShot at http://lxr.kde.org/source//KDE/kdegraphics/ksnapshot/ .

e8johan
A: 

Also look at WindowFromPoint and EnumChildWindows. The latter could allow you to prompt the user to disambiguate if you had multiple windows with the same title.

Jake Petroules