我的 PySide2 脚本中的语法错误从何而来?



我正在编写一个脚本来加载和显示QML文件,使用PySide2 python库。目前,以下脚本有效:

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 上观察到(
  • 蟒蛇 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。

最新更新