Sorry I forgot to indicate that I'm using latest Qt release, installed from the official Qt 5.3 online installer, using Ubuntu 14.04.
On Mon, May 26, 2014 at 4:04 PM, Juan Navarro <oneorj...@gmail.com> wrote: > Hi there; > i'm struggling with the behavior of ApplicationWindow and I found that > it only opens a window when used directly from main() but not from a > custom class. Let's explain with an example: > > ---- > main.qml: > import QtQuick 2.2 > import QtQuick.Controls 1.1 > > ApplicationWindow { > visible: true > width: 640 > height: 480 > > Text { > text: "Hello World" > anchors.centerIn: parent > } > } > ---- > main.cpp: > #include <QApplication> > #include <QGuiApplication> > #include <QQmlApplicationEngine> > #include <QObject> > #include <QWidget> > #include <QUrl> > > class MainWindow1 > { > public: > MainWindow1() > { QQmlApplicationEngine engine("main.qml"); } > }; > > class MainWindow2 : public QObject > { > public: > MainWindow2(QObject* parent = 0) > : QObject(parent) > { QQmlApplicationEngine engine("main.qml"); } > }; > > class MainWindow3 : public QWidget > { > public: > MainWindow3(QWidget* parent = 0, Qt::WindowFlags flags = 0) > : QWidget(parent, flags) > { QQmlApplicationEngine engine("main.qml"); } > }; > > int main(int argc, char *argv[]) > { > QApplication app(argc, argv); > > // MainWindow1 window; > // MainWindow2 window; > // MainWindow3 window; > QQmlApplicationEngine engine("main.qml"); > > return app.exec(); > } > ---- > > Check the main() function: only with the uncommented code I get to see > a new Window which shows the "Hello World" text. If we comment that > and uncomment any of the other 3 options, which use a custom > "MainWindow" class, then nothing will come out. I derived MainWindow > from QObject and QWidget in hopes to find some solution, but I > actually would think that a standalone MainWindow class should suffice > for this basic usage scenario. > > Is it a bug or I am misusing this class? > > Also, extracting the inner QQuickWindow and forcing a call to show() > doesn't work; ie: > MainWindow1() > { > QQmlApplicationEngine engine("main.qml"); > Q_ASSERT(engine.rootObjects().size() > 0); > QQuickWindow* window = > qobject_cast<QQuickWindow*>(engine.rootObjects().at(0)); > window->show(); > } > doesn't work. _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest