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

标签 python python-3.x pyside2

我正在编写一个脚本来使用 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
  • 集成环境: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/

相关文章:

python - 用零填充 pandas 数据帧上的行,直到 N 计数

python - 如何将元组列表的字符串转换为 Python 元组列表

python-3.x - 无法在 Windows 10 中运行 Tensorflow

Python SSL 服务器给我 "501 Unsupported method GET"

python - 如何在 PyQt 中绘制自定义椭圆形?

python - Pyside2 QQuickView没有rootContext?

python - 如何在 PySide2 中使用箭头键创建快捷方式?

python - 使用 ffmpeg 作为 Python 子进程的简单示例,以及转换上的 "checking in"

python - 如何在 Flask 蓝图中使用装饰器和函数

python - Keras 分类器的准确度在训练期间稳步上升,然后下降到 0.25(局部最小值?)