我的 PySide2 脚本中的语法错误从何而来?
Where does this syntax error in my PySide2 script come from?
我正在编写一个脚本,使用 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 库加载和显示 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。