我正在编写一个脚本,使用python的PySide2库加载和显示QML文件。当前,以下脚本有效:
from PySide2.QtWidgets import QApplication
from PySide2.QtQuick import QQuickView
from PySide2.QtCore import QUrl
import sys
app = QApplication([])
qml_url = QUrl(sys.argv[0])
view = QQuickView()
但是,当我添加下一行时:
from PySide2.QtWidgets import QApplication
from PySide2.QtQuick import QQuickView
from PySide2.QtCore import QUrl
import sys
app = QApplication([])
qml_url = QUrl(sys.argv[0])
view = QQuickView()
view.setSource(qml_url)
我收到以下错误:
test.py:1:6: Syntax error
from PySide2.QtWidgets import QApplication
^
我知道还有其他库和方法可用于在Python中加载QML,但是我的问题是:为什么会出现此语法错误?我什至没有加入。
Linux x86_64(也在ARM上观察到)
Python v3.6.8
PySide2 v5.13.0
IDE:vim
最佳答案
这不是@ user2357112指出的Python语法错误。问题是您正在尝试将Python源代码作为QML URL加载:
qml_url = QUrl(sys.argv[0])
就是
PySide2.QtCore.QUrl('test.py')
。setSource
调用会引发语法错误,该错误表明第一行不是有效的QML。关于python - 我的PySide2脚本中的语法错误从何而来?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57583514/