使用PyQt5的D-Bus,如何创建错误?例如,如果有人在聊天程序中发送了未知命令,我希望能够让客户端知道如下信息:
error = QDBusMessage.createError(QDBusError.UnknownProperty, "unknown command")
QDBusConnection.systemBus().send(error)
但是,此操作失败,并显示以下消息:
*** TypeError: arguments did not match any overloaded call:
createErrorReply(self, str, str): first argument of unbound method must have type 'QDBusMessage'
createErrorReply(self, QDBusError): first argument of unbound method must have type 'QDBusMessage'
createErrorReply(self, QDBusError.ErrorType, str): first argument of unbound method must have type 'QDBusMessage'
我不能不说这个错误,因为据我所知,我完全按照描述使用它。第一个arg必须是QDBusMessage,因为那是点之前的内容。第二个arg是正确的类型,即<class 'PyQt5.QtDBus.QDBusError.ErrorType'>
返回的type(QDBusError.UnknownProperty)
。并且引号表示它是一个字符串,这就是str
的含义。
我也尝试过sendErrorReply(),但在PyQt5中似乎不存在。至少我找不到它-它不在systemBus
的{{1}}旁边,并且在send()
中找不到。
PyQt5的QDBusMessage
文件夹中的所有示例都不会发出错误。 http://pyqt.sourceforge.net/Docs/PyQt5/QtDBus.html上没有Python文档。