diff options
Diffstat (limited to 'examples/dbus/pingpong/ping.py')
-rw-r--r-- | examples/dbus/pingpong/ping.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/examples/dbus/pingpong/ping.py b/examples/dbus/pingpong/ping.py new file mode 100644 index 000000000..d61f25499 --- /dev/null +++ b/examples/dbus/pingpong/ping.py @@ -0,0 +1,38 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +"""PySide6 port of the QtDBus pingpong example from Qt v6.x (ping client)""" + +import sys +from PySide6.QtCore import QCoreApplication +from PySide6.QtDBus import QDBusConnection, QDBusInterface, QDBusReply + + +SERVICE_NAME = 'org.example.QtDBus.PingExample' + + +if __name__ == "__main__": + app = QCoreApplication() + session_bus = QDBusConnection.sessionBus() + if not session_bus.isConnected(): + print("Cannot connect to the D-Bus session bus.\n" + "To start it, run:\n" + "\teval `dbus-launch --auto-syntax`\n") + sys.exit(-1) + + iface = QDBusInterface(SERVICE_NAME, '/', '', session_bus) + if not iface.isValid(): + print(session_bus.lastError().message()) + sys.exit(-1) + + argument = sys.argv[1] if len(sys.argv) > 1 else 'Hello' + message = iface.call('ping', argument) + reply = QDBusReply(message) + if not reply.isValid(): + error = reply.error().message() + print(f'ping: Call failed: {error}') + sys.exit(-1) + + value = reply.value() + print(f'ping: Reply was: {value}') + sys.exit(0) |