2010-07-05 2 views
0

У меня есть приложение Qt/C++, которое предоставляет некоторые пользовательские классы C++ с помощью методов DBus (by registering them as MetaTypes, and using annotations in the xml), и я хочу, чтобы моя программа PyQt использовала эти методы.Может ли программа PyQt использовать интерфейс DBus, который предоставляет настраиваемые типы C++ (marhsalled через систему MetaType Qt)? Если да, то как?

Проблема, которую я вижу, заключается в том, что открытые типы - это классы C++, а не python, поэтому как я могу сделать python осведомленным об этих классах?

ответ

0

В D-Bus нет такой вещи, как «классы C++», это язык-агностик. Все методы, функции и т. Д. Имеют сигнатуры типов, выражаемые в базовых типах D-Bus (см. the spec). Просто позвоните этим классам, и он должен работать.

+0

Точка регистрации пользовательских классов с помощью Qt-системы Dbus заключается в том, что я могу использовать их в методах dbus, а Qt будет обрабатывать сериализацию за кулисами. Я хочу добиться той же абстракции в моем клиенте python. Он не «просто работает». – Casey

+0

Библиотека DBus Python обрабатывает всю сериализацию. Вам не нужно ничего объявлять или регистрировать что-либо заранее, чтобы использовать интерфейс C++ DBus в python. Вам не нужны классы адаптеров или интерфейсов, как в C++. Внимательно прочитайте учебник по dbus-python и попробуйте называть свои методы C++ из python, как в учебнике. – abbot

 Смежные вопросы

  • Нет связанных вопросов^_^