""" 测试使用QQuickWidget加载QML """ import sys import os from PySide6.QtWidgets import QApplication, QMainWindow, QQuickWidget from PySide6.QtCore import QUrl if __name__ == "__main__": # 添加PySide6的路径到环境变量 pyside6_path = os.path.dirname(os.path.abspath(__file__)) if os.path.exists(os.path.join(pyside6_path, "venv")): qml_path = os.path.join(pyside6_path, "venv", "lib", "site-packages", "PySide6", "qml") else: import PySide6 pyside6_base = os.path.dirname(PySide6.__file__) qml_path = os.path.join(pyside6_base, "qml") # 添加PySide6根目录到系统PATH pyside6_root_path = os.path.dirname(qml_path) os.environ["PATH"] = pyside6_root_path + ";" + os.environ.get("PATH", "") print(f"Added PySide6 root to PATH: {pyside6_root_path}") # 创建应用程序 app = QApplication(sys.argv) # 创建主窗口 main_window = QMainWindow() main_window.setWindowTitle("QQuickWidget Test") main_window.resize(400, 300) # 创建QQuickWidget quick_widget = QQuickWidget() main_window.setCentralWidget(quick_widget) # 加载最小化的QML文件 qml_file = os.path.abspath("test_minimal.qml") print(f"Loading QML file: {qml_file}") quick_widget.setSource(QUrl.fromLocalFile(qml_file)) if quick_widget.status() != quick_widget.Ready: print("ERROR: Failed to load QML file") print(f"Status: {quick_widget.status()}") sys.exit(-1) else: print("SUCCESS: Loaded QML file successfully!") # 显示窗口 main_window.show() # 运行一小段时间后退出 from PySide6.QtCore import QTimer def quit_app(): app.quit() timer = QTimer() timer.timeout.connect(quit_app) timer.start(2000) sys.exit(app.exec())