#include #include #include #include #include #include #include #include #include class ScreenshotWidget : public QWidget { Q_OBJECT public: explicit ScreenshotWidget(QWidget *parent = nullptr) : QWidget(parent), screenshotLabel(new QLabel(this)) { QVBoxLayout *layout = new QVBoxLayout(this); QPushButton *button = new QPushButton("Capture Screenshot", this); layout->addWidget(button); // Create a scroll area for displaying the screenshot QScrollArea *scrollArea = new QScrollArea(this); scrollArea->setBackgroundRole(QPalette::Dark); scrollArea->setWidget(screenshotLabel); layout->addWidget(scrollArea); connect(button, &QPushButton::clicked, this, &ScreenshotWidget::captureScreenshot); } private slots: void captureScreenshot() { QScreen *screen = this->screen(); if (screen) { QPixmap screenshot = screen->grabWindow(0); screenshotLabel->setPixmap(screenshot); screenshotLabel->resize(screenshot.size()); qDebug() << "Screenshot captured and displayed!"; } } private: QLabel *screenshotLabel; }; int main(int argc, char *argv[]) { QApplication app(argc, argv); ScreenshotWidget widget; widget.resize(800, 600); widget.show(); return app.exec(); } #include "main.moc"