Пытаюсь осилить 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-файле есть
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:
Разобрался, пример явно с ошибками.
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();
}