失败的dbus请求后PyQt5创建错误

时间:2018-07-27 08:23:12

标签: python python-3.x pyqt pyqt5 dbus

使用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文档。

0 个答案:

没有答案