diff options
Diffstat (limited to 'examples/quick/quickwidgets/quickwidget/main.cpp')
-rw-r--r-- | examples/quick/quickwidgets/quickwidget/main.cpp | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/examples/quick/quickwidgets/quickwidget/main.cpp b/examples/quick/quickwidgets/quickwidget/main.cpp index 65258d958e..2f73447a5d 100644 --- a/examples/quick/quickwidgets/quickwidget/main.cpp +++ b/examples/quick/quickwidgets/quickwidget/main.cpp @@ -41,6 +41,7 @@ #include <QQuickWidget> #include <QQmlError> #include <QtWidgets> +#include "fbitem.h" class MainWindow : public QMainWindow { Q_OBJECT @@ -52,6 +53,7 @@ private slots: void sceneGraphError(QQuickWindow::SceneGraphError error, const QString &message); void grabToFile(); void renderToFile(); + void createQuickWidgetsInTabs(QMdiArea *mdiArea); private: QQuickWidget *m_quickWidget; @@ -74,7 +76,7 @@ MainWindow::MainWindow() QLCDNumber *lcd = new QLCDNumber; lcd->display(1337); lcd->setMinimumSize(250,100); - centralWidget ->addSubWindow(lcd); + centralWidget->addSubWindow(lcd); QUrl source("qrc:quickwidget/rotatingsquare.qml"); @@ -86,14 +88,42 @@ MainWindow::MainWindow() m_quickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView ); m_quickWidget->setSource(source); - centralWidget ->addSubWindow(m_quickWidget); + centralWidget->addSubWindow(m_quickWidget); setCentralWidget(centralWidget); QMenu *fileMenu = menuBar()->addMenu(tr("&File")); - fileMenu->addAction(tr("Grab to imFage"), this, &MainWindow::grabToFile); + fileMenu->addAction(tr("Grab to image"), this, &MainWindow::grabToFile); fileMenu->addAction(tr("Render to pixmap"), this, &MainWindow::renderToFile); fileMenu->addAction(tr("Quit"), qApp, &QCoreApplication::quit); + + QMenu *windowMenu = menuBar()->addMenu(tr("&Window")); + windowMenu->addAction(tr("Add tab widget"), this, + [this, centralWidget] { createQuickWidgetsInTabs(centralWidget); }); +} + +void MainWindow::createQuickWidgetsInTabs(QMdiArea *mdiArea) +{ + QTabWidget *tabWidget = new QTabWidget; + + const QSize size(400, 400); + + QQuickWidget *w = new QQuickWidget; + w->resize(size); + w->setResizeMode(QQuickWidget::SizeRootObjectToView); + w->setSource(QUrl("qrc:quickwidget/rotatingsquaretab.qml")); + + tabWidget->addTab(w, tr("Plain Quick content")); + + w = new QQuickWidget; + w->resize(size); + w->setResizeMode(QQuickWidget::SizeRootObjectToView); + w->setSource(QUrl("qrc:quickwidget/customgl.qml")); + + tabWidget->addTab(w, tr("Custom OpenGL drawing")); + + mdiArea->addSubWindow(tabWidget); + tabWidget->show(); } void MainWindow::quickWidgetStatusChanged(QQuickWidget::Status status) @@ -139,6 +169,8 @@ int main(int argc, char **argv) { QApplication app(argc, argv); + qmlRegisterType<FbItem>("QuickWidgetExample", 1, 0, "FbItem"); + MainWindow mainWindow; mainWindow.show(); |