我正在编写一个脚本,使用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/

10-12 21:43