Russian Qt Forum

Qt => Общие вопросы => Тема начата: Unnamed_Hero от Май 16, 2009, 10:15



Название: [solved]DBUS - основы
Отправлено: Unnamed_Hero от Май 16, 2009, 10:15
Пытаюсь осилить DBUS, делаю как написано в assistant по D-Bus Adaptor Example
(Qt 4.5.1, Slackware Linux)


единственное, у меня не QApplication, а QCoreApplication.
При компиляции получаю
Код:
/home/unnamed_hero/work/qt/mpkg-update-checker/src/main.cpp:7: ошибка: ‘QDbusConnection’ не был декларирован

в pro-файле есть
Код:
QT += dbus xml

main.cpp :
Код:
#include "updatersocket.h"
int main(int argc, char *argv[])
{

    QCoreApplication app(argc, argv);
    new updaterSocket (&app);
    QDbusConnection::sessionBus().registerObject("/mpkg-update-checker", app);
    return app.exec();
}

updaterSocket.h
Код:
#ifndef UPDATERSOCKET_H
#define UPDATERSOCKET_H

#include <QCoreApplication>

#include <QtDBus>
#include <QObject>
#include <QTimer>
#include <QProcess>


class updaterSocket: public QDBusAbstractAdaptor
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "org.freedesktop.DBus.mpkg-update-checker")
Q_PROPERTY(opts options WRITE set_options)
Q_PROPERTY(QString updatesAvailable READ get_updateAvailable)

public:
    updaterSocket (QCoreApplication *application);
    ~updaterSocket ();
private:


Название: Re: DBUS - основы
Отправлено: Unnamed_Hero от Май 16, 2009, 10:30
Разобрался, пример явно с ошибками.
main.cpp должен выглядить так
Код:
#include "updatersocket.h"
int main(int argc, char *argv[])
{

    QCoreApplication app(argc, argv);
    updaterSocket * us = new updaterSocket (&app);
    QDBusConnection connection = QDBusConnection::connectToBus(QDBusConnection::SessionBus, "org.freedesktop.DBus.mpkg-update-checker");
    connection.registerObject("/mpkg-update-checker", us);
     return app.exec();
}