[PyQt] QQmlApplicationEngine and QGuiApplication

Daniel Krause madakr at web.de
Thu Feb 25 15:43:19 GMT 2016


Hello,

I am new to PyQt and having trouble to include QML-Code into an python
application.

The QML-File (main.qml) I can build in a project in QtCreator (a Qt Quick
Application was used to create the project).

import QtQuick 2.5
import QtQuick.Controls 1.4
import QtQuick.Dialogs 1.2
import QtQml.Models 2.1

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    menuBar: MenuBar {
        Menu {
            title: qsTr("File")
            MenuItem {
                text: qsTr("&Open")
                onTriggered: console.log("Open action triggered");
            }
            MenuItem {
                text: qsTr("Exit")
                onTriggered: Qt.quit();
            }
        }
    }

    MainForm {
        id: mainForm1
        anchors.fill: parent

        SplitView {
            id: splitView1
            width: 100
            anchors.left: parent.left
            anchors.leftMargin: 36
            anchors.bottom: parent.bottom
            anchors.bottomMargin: 8
            anchors.top: parent.top
            anchors.topMargin: 8
            orientation: Qt.Vertical


            Button {
                id: btn_welcome
                x: 49
                y: 21
                text: qsTr("Welcome")
            }

            Button {
                id: btn_database
                x: 49
                y: 50
                text: qsTr("Database")
            }

            MouseArea {
                id: mouseArea1
                x: 0
                y: 191
                width: 100
                height: 100
            }
        }
    }
}

It results in the following window:
[image: Inline-Bild 1]

To create the application in Python I tried to use QGuiApplication
and  QQmlApplicationEngine.
main.py and main.qml are located in the same directory:

import sys
from PyQt5.QtQml import QQmlApplicationEngine
from PyQt5.QtGui import QGuiApplication

if __name__ == '__main__':
    app = QGuiApplication(sys.argv)
    engine = QQmlApplicationEngine("main.qml")
    print(engine)
    sys.exit(app.exec_())

The print()-statement is never executed, no window is appearing.

What did I miss?

Thanks in advance

Daniel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20160225/882a0f95/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 10665 bytes
Desc: not available
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20160225/882a0f95/attachment.png>


More information about the PyQt mailing list