(C++) QtExample23
February 24, 2017 · View on GitHub
(C++) QtExample23




This Qt example shows a way to grab a widget as an image.
Technical facts
Operating system(s) or programming environment(s)
Lubuntu 15.04 (vivid)
Qt Creator 3.1.1
- G++ 4.9.2
Libraries used:
Qt project file: ./CppQtExample23/CppQtExample23.pro
exists(../../DesktopApplication.pri) { include(../../DesktopApplication.pri) } !exists(../../DesktopApplication.pri) { QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TEMPLATE = app CONFIG(debug, debug|release) { message(Debug mode) } CONFIG(release, debug|release) { message(Release mode) DEFINES += NDEBUG NTRACE_BILDERBIKKEL } QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra unix { QMAKE_CXXFLAGS += -Werror } } exists(../../Libraries/Boost.pri) { include(../../Libraries/Boost.pri) } !exists(../../Libraries/Boost.pri) { win32 { INCLUDEPATH += \ ../../../Projects/Libraries/boost_1_55_0 } } SOURCES += \ main.cpp \ grabmedialog.cpp HEADERS += grabmedialog.h FORMS += grabmedialog.ui #CONFIG += mobility #MOBILITY = #symbian { # TARGET.UID3 = 0xe7eb3159 # # TARGET.CAPABILITY += # TARGET.EPOCSTACKSIZE = 0x14000 # TARGET.EPOCHEAPSIZE = 0x020000 0x800000 #}
./CppQtExample23/grabmedialog.h
#ifndef GRABMEDIALOG_H #define GRABMEDIALOG_H #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #include <QDialog> #pragma GCC diagnostic pop namespace Ui { class GrabMeDialog; } class GrabMeDialog : public QDialog { Q_OBJECT public: explicit GrabMeDialog(QWidget *parent = 0); GrabMeDialog(const GrabMeDialog&) = delete; GrabMeDialog& operator=(const GrabMeDialog&) = delete; ~GrabMeDialog(); private: Ui::GrabMeDialog *ui; private slots: void on_button_grab_clicked(); }; #endif // GRABMEDIALOG_H
./CppQtExample23/grabmedialog.cpp
#include "grabmedialog.h" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #include "ui_grabmedialog.h" #pragma GCC diagnostic pop GrabMeDialog::GrabMeDialog(QWidget *parent) : QDialog(parent), ui(new Ui::GrabMeDialog) { ui->setupUi(this); } GrabMeDialog::~GrabMeDialog() { delete ui; } void GrabMeDialog::on_button_grab_clicked() { ui->label_image->setPixmap( QPixmap::grabWindow(this->winId())); //Other way: //QImage copy = QPixmap::grabWindow(this->winId()).toImage(); //copy.save("temp.png"); //ui->label_image->setPixmap(QPixmap("temp.png")); }
./CppQtExample23/main.cpp
#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #include <QApplication> #include "grabmedialog.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); GrabMeDialog w; w.show(); return a.exec(); }