Próbuję już cztery dni, aby zrozumieć, jak używać QtDbus do wysyłania liczby całkowitej między dwiema aplikacjami. Ale wszystkie moje próby zawiodły. Znalazłem wiele przykładów w Internecie, ale kiedy próbuję to wszystko zebrać, nie mogę stwierdzić, gdzie i co dzieje się źle. Użyłem skutecznego mechanizmu Signal & & Slot, ale nigdy wcześniej nie korzystałem z Dbus. Nie mogę nawet zacząć .. Czy ktoś może podać minimalny pełny przykład?QtDbus C++ minimalny przykład
Odpowiedz
Istnieje kilka przykładów, które są częścią dokumentacji Qt, patrz: http://developer.qt.nokia.com/doc/qt-4.8/examples-dbus.html
Ponadto, tutaj jest tutorial, który idzie przez dokonanie prostego klienta dbus i serwera: http://www.developer.nokia.com/Community/Wiki/QtDbus_quick_tutorial
gdybym był w stanie umieścić jeden z tego przykładu razem ... to nie jest tak proste, jak to jest napisane – Tebe
Przykłady Qt (pierwszy link) wszystkie zawierają kod źródłowy read-to-compile. Proponuję zacząć od jednego z nich, zmusić go do kompilacji i pracy od tego miejsca. Alternatywnie, drugi link przeprowadzi Cię przez proces tworzenia od zera. Mimo wszystko, powodzenia! =) – wjl
nie, próbowałem. Więc jestem zmuszony używać Signals, które są o wiele lepiej udokumentowane i opuszczają qtdbus. – Tebe
Na początku jest niezły bałagan. W każdym razie, umieszczając kilka dzienników i używając dbus-monitor, powinno ci pomóc zrozumieć, która część zawodzi. W każdym razie, razem z przykładami Qt, bardzo pomocne może okazać się this. Jest to komplet dokumentów w pełni wyjaśnionych. Znalazłem te bardziej pomocne niż te z Qt w tym przypadku.
Najlepszy możliwy poradnik zrozumieć QT-DBus mogłem znaleźć był to -
próbować podążać samouczek w tej kolejności -
- Wprowadzenie do D-Bus
- Tworzenie interfejsów D-Bus
- Dostęp do interfejsu DBus
- Tworzenie niestandardowych typów dla qt-DBus
Następnie wykonaj resztę, jeśli nie masz co najmniej takich problemów.
Możesz również zainstalować to narzędzie - D-Feet Bardzo pomaga w zrozumieniu/debugowaniu kodu dbus.
Bądź cierpliwy i spróbuj powyższych linków jeden po drugim, wróć tutaj z konkretnymi wątpliwościami, wspólnota ci pomoże.
Podanie przykładowej aplikacji nie pomoże, ponieważ nie jest tak naprawdę o kodzie, chodzi o proces, który należy wykonać, aby dotrzeć do tego kodu (Większość kodu jest generowana automatycznie w postaci klas adaptera i proxy. Musisz tylko nauczyć się jak to zrobić).
jak to odpowiada na pytanie? Oprócz niepowiązanych linków, nie podałeś przykładu –
Czasami odpowiedź nie jest odpowiedzią, kierunek w stronę odpowiedzi. –
Korzystałem również z samouczka wspomnianego przez wjl (http://www.developer.nokia.com/Community/Wiki/QtDbus_quick_tutorial), ale miałem problemy, dopóki nie zdałem sobie sprawy z demoifadaptora. * Pliki są interfejsem Dbus, a pliki mydemo. * Są częścią aplikacji, która wykonuje pracę. Role te nie były dla mnie jasne na początku (być może z powodu braku doświadczenia z Qt).
Zresztą kiedyś stworzyłem następujący plik mydemo.c, wszystko działało:
#include "mydemo.h"
#include <QObject>
#include <iostream>
MyDemo::MyDemo(QObject *parent)
{
// Do nothing
}
void MyDemo::SayBye()
{
std::cout << "Bye" << std::endl;
}
void MyDemo::SayHello(const QString &name, const QVariantMap &customdata)
{
std::cout << "Hello" << std::endl;
}
// end of file
Zobacz także moją powiązane pytanie i odpowiedzieć: http://stackoverflow.com/questions/20206376/how-do-i -extract-the-return-data-from-qdbusmessage-in-a-qt-dbus-call – MatthewD
Proszę [edytuj] swoje pytanie, aby pokazać [to, co próbowaliście do tej pory] (http://whathaveyoutried.com). Powinieneś dołączyć kod [mcve] kodu, z którym masz problemy, a następnie możemy spróbować pomóc w rozwiązaniu konkretnego problemu. Powinieneś także przeczytać [zapytaj]. –
jesteś poważny? – Tebe