crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> проблема с QObject::connect
LEO
  опции профиля:
сообщение 22.9.2009, 22:11
Сообщение #1


Студент
*

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

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




Репутация:   0  


Ребят, помогите с решением ошибки:
Цитата
main.cpp:18: ошибка: нет подходящей функции для вызова ‘QObject::connect(IntInterface*&, const char*, IntInterface*&, const char*)’
Раскрывающийся текст

interfaces.h
#include <QtCore>

#ifndef _interfaces_h_
#define _interfaces_h_

class IntInterface {
public:
    virtual ~IntInterface() {}
    virtual void a();
  public slots: virtual void operations(int i) const = 0;
  signals:  virtual void t(int i);
};
Q_DECLARE_INTERFACE(IntInterface, "com.mysoft.Application.StringInterface/1.0")
#endif
main.cpp
#include "interfaces.h"
int main(int argc, char** argv)
{
   QPluginLoader loader("./pulings/myplugin");
   QObject *ob = qobject_cast<QObject*>(loader.instance());
   IntInterface *p = qobject_cast<IntInterface*>(ob);
// ERROR
   QObject::connect(p, SIGNAL(t(int)), p, SLOT(operations(int)));

   p->a();
   return 0;
}
Класс IntInterface реализуется в виде плагина
Раскрывающийся текст
class MyPlugin : public QObject, public IntInterface {
Q_OBJECT
Q_INTERFACES(IntInterface)
signals: void t(int i);

public:
    virtual ~MyPlugin();
    virtual void a(){emit t(10);};
  public slots: virtual void operations(int i) const {qDebug() << i;};
};
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
nZil
  опции профиля:
сообщение 22.9.2009, 22:18
Сообщение #2


Студент
*

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

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




Репутация:   0  


А это не из-за того что тут
class IntInterface {
~~~~~~~~~~~~~~~~~~~~~~~
public:
    virtual ~IntInterface() {}
    virtual void a();
  public slots: virtual void operations(int i) const = 0;
  signals:  virtual void t(int i);
};

нету Q_OBJECT?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.9.2009, 22:24
Сообщение #3


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

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

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




Репутация:   94  


Цитата(LEO @ 23.9.2009, 2:11) *
(IntInterface*&, const char*, IntInterface*&, const char*
поидее такая ошибка возникает, когда ты передаёшь объект вместо указателя. Но в приведённом коде вроде всё верно (т.е. передаётся указатель)

Цитата(nZil @ 23.9.2009, 2:18) *
нету Q_OBJECT?
замечание в тему, но с такой ошибкой на компиляцию, по-моему, влиять не должно.

LEO, а кандидиты компиллер не предлагает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
LEO
  опции профиля:
сообщение 22.9.2009, 22:37
Сообщение #4


Студент
*

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

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




Репутация:   0  


Q_OBJECT особо не помог.
вот вывод компилятора:
main.cpp: In function ‘int main(int, char**)’:
main.cpp:18: ошибка: нет подходящей функции для вызова ‘QObject::connect(IntInterface*&, const char*, IntInterface*&, const char*)’
/usr/include/qt4/QtCore/qobject.h:202: замечание: претенденты: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)
/usr/include/qt4/QtCore/qobject.h:307: замечание: bool QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const
main.cpp: At global scope:
main.cpp:13: предупреждение: параметр ‘argc’ не используется
main.cpp:13: предупреждение: параметр ‘argv’ не используется
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 22.9.2009, 22:41
Сообщение #5


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


LEO,
читай про сигналы и слоты
мало Q_OBJECT
класс содержащий свои сигналы и слоты должен быть наследником QObject ...


а зачем тебе виртуальный сигнал?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.9.2009, 22:43
Сообщение #6


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

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

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




Репутация:   94  


Цитата(kwisp @ 23.9.2009, 2:41) *
ласс содержащий свои сигналы и слоты должен быть наследником QObject ...
тьфу-ты :)

Цитата(kwisp @ 23.9.2009, 2:41) *
а зачем тебе виртуальный сигнал?
а к стати да, сигнал - истинно-виртуальная функция сама по себе.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 22.9.2009, 22:45
Сообщение #7


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(Litkevich Yuriy @ 22.9.2009, 23:43) *
сигнал - истинно-виртуальная функция сама по себе.

оба на.
это как? разве так бывает?



Сообщение отредактировал kwisp - 22.9.2009, 22:56
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
LEO
  опции профиля:
сообщение 22.9.2009, 22:57
Сообщение #8


Студент
*

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

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




Репутация:   0  


Ошибка у меня дурацкая до придела)))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 22.9.2009, 22:58
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Цитата(LEO @ 22.9.2009, 23:57) *
Ошибка у меня дурацкая до придела)))


Я думаю все этого и ожидали :rolleyes:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.9.2009, 23:39
Сообщение #10


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

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

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




Репутация:   94  


Цитата(kwisp @ 23.9.2009, 2:45) *
оба на.
это как? разве так бывает?
да, факт не бывает. черти попутали :D
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 16.6.2024, 6:10