62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
"""
|
|
测试使用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())
|