crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QDbus, управление прогой из терминала
malcer
  опции профиля:
сообщение 16.6.2011, 0:51
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 16.6.2011
Пользователь №: 2747

Спасибо сказали: 0 раз(а)




Репутация:   0  


здравствуйте

void example::run()
{
   qDebug() << "result";
   ui->lineEdit->setText("result");
}


почемуто, запуская этот метод через терминал,используя QDbus
c qDebug нет проблем, а эдит воопще не реагирует В замешательстве

подскажыте в чем проблема? :blink:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 16.6.2011, 2:06
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


А можно побольше инфы?
Какая ОС, ДЕ.

Саму команду консоли. Ну и весь пример, что бы у себя потестить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
malcer
  опции профиля:
сообщение 16.6.2011, 10:28
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 16.6.2011
Пользователь №: 2747

Спасибо сказали: 0 раз(а)




Репутация:   0  


OC ubuntu , Qt 4.6.2

Мой код:
[codebox]
---------------------------------------------------
main.cpp
---------------------------------------------------
#include <QtGui/QApplication>
#include <QtDBus/QDBusConnection>
#include "example.h"
#include "adaptor.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);


/* connection to the service session bus */
example *tmp = new example();
new Adaptor(tmp);
QDBusConnection connection = QDBusConnection::sessionBus();
connection.registerObject("/example", tmp);
connection.registerService("com.trolltech.Example");

example w;
w.show();
return a.exec();
}
---------------------------------------------------
example.h
---------------------------------------------------
#ifndef EXAMPLE_H
#define EXAMPLE_H

#include <QMainWindow>
#include <QtDBus/QtDBus>
#include <QtCore/QDebug>
#include <QString>
#include <QFile>

namespace Ui {
class example;
}

class example : public QMainWindow
{
Q_OBJECT
public:
example(QWidget *parent = 0);
~example();
QString str;

protected:
void changeEvent(QEvent *e);

private:
Ui::example *ui;

public Q_SLOTS:
void run();
void on_pushButton_clicked();
};

#endif // EXAMPLE_H
---------------------------------------------------
example.cpp
---------------------------------------------------
#include "example.h"
#include "ui_example.h"

example::example(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::example)
{
ui->setupUi(this);

}

example::~example()
{
//delete ui;
}

void example::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}

void example::run()
{
qDebug() << "qdbus";
ui->lineEdit->setText("qdbus");
}


void example::on_pushButton_clicked()
{
qDebug() << "button";
ui->lineEdit->setText("button");
}
---------------------------------------------------
adaptor.h
---------------------------------------------------
#include <QtDBus/QtDBus>

class Adaptor: public QDBusAbstractAdaptor
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "com.trolltech.Example")
Q_CLASSINFO("D-Bus Introspection", ""
" <interface name=\"com.trolltech.Example\" >\n"
" <method name=\"run\" />\n"
" </method>\n"
" </interface>\n"
"")
public:
Adaptor(QObject *parent);
virtual ~Adaptor();

public: // PROPERTIES
public Q_SLOTS: // METHODS
void run();

};
---------------------------------------------------
adaptor.cpp
---------------------------------------------------
#include "adaptor.h"
#include "example.h"
#include <QtCore/QMetaObject>

Adaptor::Adaptor(QObject *parent)
: QDBusAbstractAdaptor(parent)
{
// constructor
setAutoRelaySignals(true);
}

Adaptor::~Adaptor()
{
// destructor
}

void Adaptor::run()
{
QMetaObject::invokeMethod(parent(), "run");
}
[/codebox]



Из терминала ввожу " qdbus com.trolltech.Example /example run "





[codebox] adaagadfg [/codebox]

[quote name='malcer' date='16.6.2011, 10:26' post='50792']
OC ubuntu , Qt 4.6.2

Мой код:
[codebox]
---------------------------------------------------
main.cpp
---------------------------------------------------
#include <QtGui/QApplication>
#include <QtDBus/QDBusConnection>
#include "example.h"
#include "adaptor.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);


/* connection to the service session bus */
example *tmp = new example();
new Adaptor(tmp);
QDBusConnection connection = QDBusConnection::sessionBus();
connection.registerObject("/example", tmp);
connection.registerService("com.trolltech.Example");

example w;
w.show();
return a.exec();
}
---------------------------------------------------
example.h
---------------------------------------------------
#ifndef EXAMPLE_H
#define EXAMPLE_H

#include <QMainWindow>
#include <QtDBus/QtDBus>
#include <QtCore/QDebug>
#include <QString>
#include <QFile>

namespace Ui {
class example;
}

class example : public QMainWindow
{
Q_OBJECT
public:
example(QWidget *parent = 0);
~example();
QString str;

protected:
void changeEvent(QEvent *e);

private:
Ui::example *ui;

public Q_SLOTS:
void run();
void on_pushButton_clicked();
};

#endif // EXAMPLE_H
---------------------------------------------------
example.cpp
---------------------------------------------------
#include "example.h"
#include "ui_example.h"

example::example(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::example)
{
ui->setupUi(this);

}

example::~example()
{
//delete ui;
}

void example::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}

void example::run()
{
qDebug() << "qdbus";
ui->lineEdit->setText("qdbus");
}


void example::on_pushButton_clicked()
{
qDebug() << "button";
ui->lineEdit->setText("button");
}
---------------------------------------------------
adaptor.h
---------------------------------------------------
#include <QtDBus/QtDBus>

class Adaptor: public QDBusAbstractAdaptor
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "com.trolltech.Example")
Q_CLASSINFO("D-Bus Introspection", ""
" <interface name=\"com.trolltech.Example\" >\n"
" <method name=\"run\" />\n"
" </method>\n"
" </interface>\n"
"")
public:
Adaptor(QObject *parent);
virtual ~Adaptor();

public: // PROPERTIES
public Q_SLOTS: // METHODS
void run();

};
---------------------------------------------------
adaptor.cpp
---------------------------------------------------
#include "adaptor.h"
#include "example.h"
#include <QtCore/QMetaObject>

Adaptor::Adaptor(QObject *parent)
: QDBusAbstractAdaptor(parent)
{
// constructor
setAutoRelaySignals(true);
}

Adaptor::~Adaptor()
{
// destructor
}

void Adaptor::run()
{
QMetaObject::invokeMethod(parent(), "run");
}
[/codebox]



Из терминала ввожу " qdbus com.trolltech.Example /example run "
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.6.2011, 10:55
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(malcer @ 16.6.2011, 13:28) *
[codebox]
нет такого тега, есть проще:
кнопка "Код"
тег code
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 16.6.2011, 11:03
Сообщение #5


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Можете, пожалуйста, в архиве выложить?
Я задолбаюсь копипастить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
malcer
  опции профиля:
сообщение 16.6.2011, 14:17
Сообщение #6


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 16.6.2011
Пользователь №: 2747

Спасибо сказали: 0 раз(а)




Репутация:   0  


https://rapidshare.com/files/1767822018/example2.tar

..извините, не вижу как на сам форум залить:(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 16.6.2011, 21:05
Сообщение #7


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Тоже не пашет. Бага.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.12.2024, 4:03