PyQt5中带有QDBusInterface的调用函数

2024-10-03 02:33:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了一个DBus连接,它应该从服务器端提供一些3D坐标(QVector3D)。我看到会话总线对象/org/track/control已经在D-Feet应用程序中,那里的函数getCoordinates()给了我正确的值。我的问题是,我应该如何在pyqt中调用这个函数?如果我将其称为:dBusInterface.call('getCoordinates'),则会出现以下错误:

QDBusMarshaller: type `PyQt_PyObject' (1025) is not registered with D-BUS. Use qDBusRegisterMetaType to register it

Call failed: No such method 'getCoordinates' in any interface at object path '/org/track/control' (signature 's')

我在pyqt4或5中找不到qDBusRegisterMetaType的任何教程或示例

^{pr2}$

谢谢你的建议


Tags: 对象函数org应用程序服务器端trackpyqtcontrol
1条回答
网友
1楼 · 发布于 2024-10-03 02:33:27

好吧,我发现了问题。我应该用整数调用函数。因为我有3个源,它们在服务器中生成坐标,然后在客户端中调用函数:

for i in range(3):
  # Gives coords from all sources
  msg = dBusInterface.call('getCoordinates', i) 
  reply = QDBusReply(msg)
  ...

相关问题 更多 >