支持的签名和 Union[] 是什么?

What is supported signatures and Union[]?

如果您想查看基线问题,请跳过问题详情并查看摘要

问题详情

我不太熟悉 gui 编程,但我正在尝试让 smach_viewer 为我正在为 ROS noetic 中的 class 工作的项目工作。我已经采取了提取所有源代码并将其放入我的工作区的方法,这已经使它更易于管理,但是在调整 python 包之一中的代码时,我 运行 出现错误我不能正面或反面:

  File "/home/hawk/final_project_ws/src/final-project-group-4-inc/src/xdot/xdot_qt.py", line 1914, in main
    app.setWindowIcon(QIcon(":/icon.png"))
TypeError: 'PySide6.QtGui.QGuiApplication.setWindowIcon' called with wrong argument types:
  PySide6.QtGui.QGuiApplication.setWindowIcon(QIcon)
Supported signatures:
  PySide6.QtGui.QGuiApplication.setWindowIcon(Union[PySide6.QtGui.QIcon, PySide6.QtGui.QPixmap])

上面说函数 setWindowIcon 有一个支持的签名,这是我以前从未见过的。在支持的签名中,它说函数的参数看起来是这样的:Union[QIcon, QPixmap](<-- summary form)。我以前从未见过 Union[] 的东西,所以这对我来说也是新的。

总结

  1. 这个错误告诉我什么?
  2. 什么是受支持的签名?
  3. 如建议的错误签名所示,参数中的 Union[] 是什么?

所以我发现支持的签名指定了哪些对象可以传递给参数。

联合是表示参数应该是这个对象或另一个对象的另一种方式。

所以支持的签名:PySide6.QtGui.QGuiApplication.setWindowIcon(Union[PySide6.QtGui.QIcon, PySide6.QtGui.QPixmap]) 是说函数 PySide6.QtGui.QGuiApplication.setWindowIcon() 接受类型 Pyside6.QtGui.QIconPySide6.QtGui.QPixmap.

的对象