Oh My God, that's a shameful way of doing a first post. Obviously, my QQmlApplicationEngine is getting destroyed after falling outside the scope of MainWindow destructor. Glad nobody read this, right? :-) I guess today's being a bad day already. Sorry for the noise!
On Mon, May 26, 2014 at 4:06 PM, Juan Navarro <oneorj...@gmail.com> wrote: > 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