私は Qt の初心者です。接続されているデバイスに関する情報を取得するために QDbusConnection API を使用することを考えました。次のコードを使用しました
#include <QtCore/QDebug>
#include <QtGui/QApplication>
#include <QtDBus/QDBusConnection>
#define HAL_SERV "org.freedesktop.Hal"
#define HAL_MGR_INT "org.freedesktop.Hal.Manager"
#define HAL_DEV_INT "org.freedesktop.Hal.Device"
#define HAL_MGR_PATH "/org/freedesktop/Hal/Manager"
#define HAL_DEVS_PATH "/org/freedesktop/Hal/devices"
class Hal : public QObject
{
Q_OBJECT
public:
Hal() :
QObject(),
cnx( QDBusConnection::connectToBus( QDBusConnection::SystemBus, "system" ) )
{
cnx.connect(
HAL_SERV, HAL_MGR_PATH, HAL_MGR_INT, "DeviceAdded",
this, SLOT(added(QString)) );
cnx.connect(
HAL_SERV, HAL_MGR_PATH, HAL_MGR_INT, "DeviceRemoved",
this, SLOT(removed(QString)) );
}
private slots:
void added( QString dev )
{
qDebug() << __FUNCTION__ << dev;
}
void removed( QString dev )
{
qDebug() << __FUNCTION__ << dev;
}
private:
QDBusConnection cnx;
};
int main( int ac, char * * av )
{
QApplication app( ac, av );
Hal hal;
return( app.exec() );
}
#include "main.moc"
プロジェクトを正常にビルドします。実行すると、出力が観察されません。デバッガーは次のような警告を表示します: GDB: 制御端末の設定に失敗しました: デバイスの不適切な ioctl\n"
問題は何ですか、誰でも私を詳細に説明できますか。アプリケーションの実行方法は?引数が必要ですか?
よろしく、 スジャサ