aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quick
diff options
context:
space:
mode:
Diffstat (limited to 'examples/quick')
-rw-r--r--examples/quick/quickwidgets/quickwidget/main.cpp32
1 files changed, 31 insertions, 1 deletions
diff --git a/examples/quick/quickwidgets/quickwidget/main.cpp b/examples/quick/quickwidgets/quickwidget/main.cpp
index 3850dde157..04c7073afe 100644
--- a/examples/quick/quickwidgets/quickwidget/main.cpp
+++ b/examples/quick/quickwidgets/quickwidget/main.cpp
@@ -50,6 +50,8 @@ public:
private slots:
void quickWidgetStatusChanged(QQuickWidget::Status);
void sceneGraphError(QQuickWindow::SceneGraphError error, const QString &message);
+ void grabToFile();
+ void renderToFile();
private:
QQuickWidget *m_quickWidget;
@@ -88,7 +90,11 @@ MainWindow::MainWindow()
setCentralWidget(centralWidget);
- QMenu *fileMenu = menuBar()->addMenu(tr("File"));
+ QMenu *fileMenu = menuBar()->addMenu(tr("&File"));
+ QAction *grabAction = fileMenu->addAction(tr("Grab to image"));
+ connect(grabAction, SIGNAL(triggered()), this, SLOT(grabToFile()));
+ QAction *renderAction = fileMenu->addAction(tr("Render to pixmap"));
+ connect(renderAction, SIGNAL(triggered()), this, SLOT(renderToFile()));
QAction *quitAction = fileMenu->addAction(tr("Quit"));
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
}
@@ -108,6 +114,30 @@ void MainWindow::sceneGraphError(QQuickWindow::SceneGraphError, const QString &m
statusBar()->showMessage(message);
}
+template<class T> void saveToFile(QWidget *parent, T *saveable)
+{
+ QString t;
+ QFileDialog fd(parent, t, QString());
+ fd.setAcceptMode(QFileDialog::AcceptSave);
+ fd.setDefaultSuffix("png");
+ fd.selectFile("test.png");
+ if (fd.exec() == QDialog::Accepted)
+ saveable->save(fd.selectedFiles().first());
+}
+
+void MainWindow::grabToFile()
+{
+ QImage image = m_quickWidget->grabFramebuffer();
+ saveToFile(this, &image);
+}
+
+void MainWindow::renderToFile()
+{
+ QPixmap pixmap(m_quickWidget->size());
+ m_quickWidget->render(&pixmap);
+ saveToFile(this, &pixmap);
+}
+
int main(int argc, char **argv)
{
QApplication app(argc, argv);