以下是使用QScreen进行截屏的示例代码:
#include <QtWidgets/QApplication>
#include <QtGui/QScreen>
#include <QtGui/QPixmap>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 获取所有屏幕
QList<QScreen*> screens = QGuiApplication::screens();
// 截取第一个屏幕
QScreen* screen = screens.at(0);
QPixmap screenshot = screen->grabWindow(0);
// 保存截图到文件
QString filename = "screenshot.png";
screenshot.save(filename);
return a.exec();
}
该示例代码中,首先使用QGuiApplication::screens()
函数获取所有可用的屏幕,并从中选择第一个屏幕。然后使用QScreen::grabWindow()
函数对整个屏幕进行截取,并将结果保存为一个QPixmap对象。最后,使用QPixmap::save()
函数将截图保存到指定的文件中。
需要注意的是,在某些操作系统上,可能需要为应用程序授权才能进行屏幕截取操作。例如,在macOS上,需要在应用程序的Info.plist文件中添加NSAppleEventsUsageDescription键以获得授权。