void tst_qquickwidget::renderingSignals() { QQuickWidget widget; QQuickWindow *window = widget.quickWindow(); QVERIFY(window); QSignalSpy beforeRenderingSpy(window, &QQuickWindow::beforeRendering); QSignalSpy beforeSyncSpy(window, &QQuickWindow::beforeSynchronizing); QSignalSpy afterRenderingSpy(window, &QQuickWindow::afterRendering); QVERIFY(beforeRenderingSpy.isValid()); QVERIFY(beforeSyncSpy.isValid()); QVERIFY(afterRenderingSpy.isValid()); QCOMPARE(beforeRenderingSpy.size(), 0); QCOMPARE(beforeSyncSpy.size(), 0); QCOMPARE(afterRenderingSpy.size(), 0); widget.setSource(testFileUrl("rectangle.qml")); QCOMPARE(beforeRenderingSpy.size(), 0); QCOMPARE(beforeSyncSpy.size(), 0); QCOMPARE(afterRenderingSpy.size(), 0); widget.show(); QVERIFY(QTest::qWaitForWindowExposed(&widget, 5000)); QTRY_VERIFY(beforeRenderingSpy.size() > 0); QTRY_VERIFY(beforeSyncSpy.size() > 0); QTRY_VERIFY(afterRenderingSpy.size() > 0); }
void MainWindow::updateView() { QSurfaceFormat format; format.setDepthBufferSize(16); format.setStencilBufferSize(8); if (m_transparent) format.setAlphaBufferSize(8); if (m_checkboxMultiSample->isChecked()) format.setSamples(4); State state = m_radioView->isChecked() ? UseWindow : UseWidget; if (m_format == format && m_state == state) return; m_format = format; m_state = state; QString text = m_currentRootObject ? m_currentRootObject->property("currentText").toString() : QStringLiteral("Hello Qt"); QUrl source("qrc:qquickviewcomparison/test.qml"); if (m_state == UseWindow) { QQuickView *quickView = new QQuickView; // m_transparent is not supported here since many systems have problems with semi-transparent child windows quickView->setFormat(m_format); quickView->setResizeMode(QQuickView::SizeRootObjectToView); connect(quickView, &QQuickView::statusChanged, this, &MainWindow::onStatusChangedView); connect(quickView, &QQuickView::sceneGraphError, this, &MainWindow::onSceneGraphError); quickView->setSource(source); m_currentRootObject = quickView->rootObject(); switchTo(QWidget::createWindowContainer(quickView)); } else if (m_state == UseWidget) { QQuickWidget *quickWidget = new QQuickWidget; if (m_transparent) { quickWidget->setClearColor(Qt::transparent); quickWidget->setAttribute(Qt::WA_TranslucentBackground); } quickWidget->setFormat(m_format); quickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView); connect(quickWidget, &QQuickWidget::statusChanged, this, &MainWindow::onStatusChangedWidget); connect(quickWidget, &QQuickWidget::sceneGraphError, this, &MainWindow::onSceneGraphError); quickWidget->setSource(source); m_currentRootObject = quickWidget->rootObject(); switchTo(quickWidget); } if (m_currentRootObject) { m_currentRootObject->setProperty("currentText", text); m_currentRootObject->setProperty("multisample", m_checkboxMultiSample->isChecked()); m_currentRootObject->setProperty("translucency", m_transparent); } m_overlayLabel->raise(); }
QQuickWidget* ChatListWidget::createQuickWidget(QWidget *parent) { QQuickWidget* quickWidget = new QQuickWidget(parent); quickWidget->setGeometry(QRect(-1, -1, 480, 560)); quickWidget->setSource(QUrl::fromLocalFile("D:/Qt/project/Qt Creator Project/MMDesktop/qml/myChatView.qml")); quickWidget->rootContext()->setContextProperty("sessionID", "123-456-789"); quickWidget->hide(); return quickWidget; }
void tst_qquickwidget::errors() { QQuickWidget *view = new QQuickWidget; QScopedPointer<QQuickWidget> cleanupView(view); QQmlTestMessageHandler messageHandler; view->setSource(testFileUrl("error1.qml")); QVERIFY(view->status() == QQuickWidget::Error); QVERIFY(view->errors().count() == 1); }
int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; //w.show(); QQuickWidget *view = new QQuickWidget; view->setSource(QUrl::fromLocalFile("../../../tabview.qml")); view->show(); return a.exec(); }
void tst_qquickwidget::changeGeometry() { QWidget window; QQuickWidget *childView = new QQuickWidget(&window); childView->setSource(testFileUrl("rectangle.qml")); window.show(); QVERIFY(QTest::qWaitForWindowExposed(&window, 5000)); childView->setGeometry(100,100,100,100); }
void tst_qquickwidget::reparentAfterShow() { QWidget window; QQuickWidget *childView = new QQuickWidget(&window); childView->setSource(testFileUrl("rectangle.qml")); window.show(); QVERIFY(QTest::qWaitForWindowExposed(&window, 5000)); QScopedPointer<QQuickWidget> toplevelView(new QQuickWidget); toplevelView->setParent(&window); toplevelView->setSource(testFileUrl("rectangle.qml")); toplevelView->show(); QVERIFY(QTest::qWaitForWindowExposed(&window, 5000)); }
int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget widget; widget.setWindowTitle(QT_VERSION_STR); const QUrl source(QUrl::fromLocalFile(QLatin1String(SRCDIR) + QStringLiteral("/main.qml"))); QHBoxLayout *hLayout = new QHBoxLayout(&widget); QGroupBox *groupBox = new QGroupBox("QuickWidget", &widget); QVBoxLayout *vLayout = new QVBoxLayout(groupBox); QQuickWidget *quickWidget = new QQuickWidget(groupBox); quickWidget->setMinimumSize(200, 200); vLayout->addWidget(quickWidget); quickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView); quickWidget->setSource(source); if (quickWidget->status() == QQuickWidget::Error) { qWarning() << quickWidget->errors(); return 1; } hLayout->addWidget(groupBox); groupBox = new QGroupBox("QQuickView/createWindowContainer", &widget); vLayout = new QVBoxLayout(groupBox); QQuickView *view = new QQuickView; view->setSource(source); if (view->status() == QQuickView::Error) { qWarning() << view->errors(); return 1; } view->setResizeMode(QQuickView::SizeRootObjectToView); QWidget *container = QWidget::createWindowContainer(view, groupBox); container->setMinimumSize(200, 200); vLayout->addWidget(container); hLayout->addWidget(groupBox); const QRect availableGeometry = QApplication::desktop()->availableGeometry(&widget); widget.move(availableGeometry.center() - QPoint(widget.sizeHint().width() / 2, widget.sizeHint().height() / 2)); widget.show(); return app.exec(); }
int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget widget; widget.setWindowTitle(QT_VERSION_STR); QHBoxLayout *hLayout = new QHBoxLayout(&widget); QGroupBox *groupBox = new QGroupBox("QuickWidget", &widget); QVBoxLayout *vLayout = new QVBoxLayout(groupBox); QQuickWidget *quickWidget = new QQuickWidget(groupBox); quickWidget->setMinimumSize(360, 520); vLayout->addWidget(quickWidget); quickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView); quickWidget->setSource(QUrl(QLatin1String("qrc:/main.qml"))); if (quickWidget->status() == QQuickWidget::Error) { qWarning() << quickWidget->errors(); return 1; } hLayout->addWidget(groupBox); const QUrl gallerySource(QLatin1String("qrc:/gallery.qml")); QQmlApplicationEngine engine(gallerySource); QObject *root = engine.rootObjects().value(0, Q_NULLPTR); if (!root || !root->isWindowType()) { qWarning() << "Load error" << gallerySource; return 1; } groupBox = new QGroupBox("QQuickView/createWindowContainer", &widget); vLayout = new QVBoxLayout(groupBox); QWidget *container = QWidget::createWindowContainer(qobject_cast<QWindow *>(root), groupBox); container->setMinimumSize(360, 520); vLayout->addWidget(container); hLayout->addWidget(groupBox); const QRect availableGeometry = QApplication::desktop()->availableGeometry(&widget); widget.move(availableGeometry.center() - QPoint(widget.sizeHint().width() / 2, widget.sizeHint().height() / 2)); widget.show(); return app.exec(); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //criar os temporizadores like a Thread timer = new QTimer(this); //evento do timeout do timer - quando estourar faça o método atualizar connect(timer,SIGNAL(timeout()),this,SLOT(atualizarDados())); //Dados do QML /*QQuickView *view = new QQuickView(); QWidget *container = QWidget::createWindowContainer(view, this); container->setMinimumSize(500, 200); container->setMaximumSize(500, 200); container->setFocusPolicy(Qt::TabFocus); view->setSource(QUrl("qrc:/qml/dashboard.qml")); ui->verticalLayout->addWidget(container); */ QQuickWidget *view = new QQuickWidget(); view->setResizeMode(QQuickWidget::SizeRootObjectToView); //connect(quickWidget, &QQuickWidget::statusChanged, this, &MainWindow::onStatusChangedWidget); //connect(quickWidget, &QQuickWidget::sceneGraphError, this, &MainWindow::onSceneGraphError); //view->setMinimumSize(500, 200); //view->setMaximumSize(500, 200); view->setSource(QUrl("qrc:/qml/dashboard.qml")); ui->verticalLayout->addWidget(view); QObject *item = view->rootObject(); velocidade = item->findChild<QObject*>("velocidade"); temperatura = item->findChild<QObject*>("temperatura"); rpm = item->findChild<QObject*>("rpm"); borboleta = item->findChild<QObject*>("borboleta"); // Criar um agente para descoberta de dispositivos discoveryAgent = new QBluetoothDeviceDiscoveryAgent(this); connect(discoveryAgent, SIGNAL(finished()), this, SLOT(finalizarBuscaDispositivos()) ); connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(buscarServidor())); connect(ui->pushButtonConectar,SIGNAL(clicked(bool)),this,SLOT(conectarServidor())); //Configurações para a conexão com o servidor socket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol); connect( socket, SIGNAL(readyRead()), this, SLOT(onReadyRead()) ); connect( socket, SIGNAL(connected()), this, SLOT(onBluetoothConnected()) ); connect( socket, SIGNAL(disconnected()), this, SLOT(onBluetoothDisconnected()) ); connect( socket, SIGNAL(error(QBluetoothSocket::SocketError)), this, SLOT(onBluetoothError(QBluetoothSocket::SocketError)) ); }