我正在PyQt应用程序中加载QML文件,并且我想在QML文件无效的情况下显示错误和警告消息。在这种情况下,QQmlApplicationEngine应该发出warnings
信号,但这似乎不会发生。在下面的代码中,如果QML文件包含错误,则它不会被加载,但display_warnings
插槽永远不会被调用。我究竟做错了什么? PyQt版本是5.9。QQmlApplicationEngine不发出警告信号
# -*- coding: utf-8 -*-
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtQml import QQmlApplicationEngine
def display_warnings(warnings):
pass # Process warnings
if __name__ == '__main__':
import os
import sys
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.warnings.connect(display_warnings)
qml_filename = os.path.join(os.path.dirname(__file__), 'MainWindow.qml')
engine.load(qml_filename)
sys.exit(app.exec_())
QML代码肯定包含错误,但控制台中没有显示任何内容。这可能是一个PyQt问题,但PyQt文档中关于QQmlApplicationEngine的内容并不多。 –