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

Posted

技术标签:

【中文标题】什么是支持的签名和 Union[]?【英文标题】:What is supported signatures and Union[]? 【发布时间】:2021-12-29 19:40:10 【问题描述】:

如果您希望查看基线问题,请跳过问题详细信息并查看摘要

问题详情

我对 gui 编程不太熟悉,但我正在尝试让 smach_viewer 为我正在为我的 ROS noetic 课程工作的项目工作。我求助于提取所有源代码并将其放在我的工作区中,这已经使其更易于管理,但是在调整其中一个 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]

总结

    这个错误告诉我什么? 什么是支持的签名? 在建议的错误签名中显示的参数中应该包含什么 Union[]?

【问题讨论】:

【参考方案1】:

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

联合是另一种说法,参数应该是这个对象或另一个。

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

【讨论】:

以上是关于什么是支持的签名和 Union[]?的主要内容,如果未能解决你的问题,请参考以下文章

密码学系列 - 国密SM2为什么不支持恢复公钥

密码学系列 - 国密SM2为什么不支持恢复公钥

MySQL中Union子句不支持order by的解决方法

union不支持orderByClauseclusterByClausedistributeByClausesortByClause或limitClause

在 ARMv7a 上与 Neon 进行 64 位签名比较支持 CMGT 的最有效方法是啥?

NHibernate HQL 是不是支持 UNION ALL 关键字?