diff options
Diffstat (limited to 'examples/dbus/listnames/listnames.py')
-rw-r--r-- | examples/dbus/listnames/listnames.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/examples/dbus/listnames/listnames.py b/examples/dbus/listnames/listnames.py new file mode 100644 index 000000000..2240a06d8 --- /dev/null +++ b/examples/dbus/listnames/listnames.py @@ -0,0 +1,53 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +"""PySide6 port of the QtDBus listnames example from Qt v6.x""" + +import sys +from PySide6.QtCore import QCoreApplication +from PySide6.QtDBus import QDBusConnection, QDBusInterface, QDBusReply + + +def method1(): + print("Method 1:") + + session_bus = QDBusConnection.sessionBus() + reply = session_bus.interface().registeredServiceNames() + if not reply.isValid(): + print("Error:", reply.error().message()) + sys.exit(1) + values = reply.value() + for name in values: + print(name) + + +def method2(): + print("Method 2:") + + session_bus = QDBusConnection.sessionBus() + dbus_iface = QDBusInterface("org.freedesktop.DBus", "/org/freedesktop/DBus", + "org.freedesktop.DBus", session_bus) + message = dbus_iface.call("ListNames") + reply = QDBusReply(message) + print(reply.value()) + + +def method3(): + print("Method 3:") + session_bus = QDBusConnection.sessionBus() + print(session_bus.interface().registeredServiceNames().value()) + + +if __name__ == "__main__": + app = QCoreApplication() + + if not QDBusConnection.sessionBus().isConnected(): + print("Cannot connect to the D-Bus session bus.\n" + "To start it, run:\n" + "\teval `dbus-launch --auto-syntax`\n", + file=sys.stderr) + sys.exit(1) + + method1() + method2() + method3() |