Решил попробовать связку QML+Python, PyQt 5.
Элементарный пример, чаще всех встречающийся в Сети, в котором в качестве корневого элемента используется Rectangle, идёт на ура. Text, как корневой элемент - тоже.
Но вот когда я ставлю в корень ApplicationWindow или кого-то из его предков - окно остаётся белым, ничего не показывает. Status у QQuickView становится Ready, как при успешной загрузке. В чём секрет, что не так с ApplicationWindow?
Проверил через просмотрщик qmlscene - отображает нормально. А Питон не хочет.
На всякий случай - код.
import QtQuick 2.3 import QtQuick.Window 2.2 import QtQuick.Controls 1.4 ApplicationWindow { id: window visible: true }
# -*- coding: utf-8 -*- import sys # noinspection PyUnresolvedReferences from PyQt5.QtCore import QUrl # noinspection PyUnresolvedReferences from PyQt5.QtWidgets import QApplication, QMainWindow, QHBoxLayout, QPushButton # noinspection PyUnresolvedReferences from PyQt5.QtQuick import QQuickView class MyApp(QApplication): def __init__(self): super(MyApp, self).__init__(sys.argv) self.appLabel = QQuickView() self.appLabel.statusChanged.connect(self.on_status_changed) def on_status_changed(self,status): if status == QQuickView.Error: for err in self.appLabel.errors(): print (err.toString()) elif status == QQuickView.Ready: print('Status ready') else: print (status) def setSource(self, filename): self.appLabel.setSource(QUrl(filename)) def show(self): self.appLabel.show() # Main Function if __name__ == '__main__': # Create main app myApp = MyApp() # QApplication(sys.argv) # Create a label and set its properties myApp.setSource('mywindow.qml') # Show the Label myApp.show() # Execute the Application and Exit myApp.exec_() sys.exit()