Russian Qt Forum
Май 15, 2024, 23:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QObject::connect: No such signal  (Прочитано 4992 раз)
MaxoBik
Гость
« : Сентябрь 07, 2015, 12:29 »

Доброго времени суток.
Импортирую один класс из динамической библиотеки, пытаюсь присоединится к сигналу в этом классе, но получаю ошибку QObject::connect: No such signal.
Что проверенно:
- это не проблема с Q_OBJECT(он есть везде)
- это не проблема с moc_***.cpp - он включаются корректно
- это не проблема с сигнатурами сигнала и слота или value type(передаются reference types объектов как и положено)
- сигнал экспортируется в библиотеке - в таблице импорта он есть
- вроде бы не проблема с unicode - отключал и включал его поддержку в проекте

Что еще может вызывать такую ошибку?
« Последнее редактирование: Сентябрь 07, 2015, 12:45 от MaxoBik » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Сентябрь 07, 2015, 13:52 »

Код покажи.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
MaxoBik
Гость
« Ответ #2 : Сентябрь 07, 2015, 20:15 »

Код покажи.

Код:
QtColorPropertyManager* m_colorManager;
connect(m_colorManager, SIGNAL(valueChanged(QtProperty *property, const QColor &val)),
   this, SLOT(on_colorValueChanged(QtProperty *property, const QColor &val)));
С моим кодом вроде все в порядке, и сигнал вроде есть QtColorPropertyManager::valueChanged
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #3 : Сентябрь 07, 2015, 20:18 »

А где само создание объека?
Вы создали указатель, указывающий куда попало.
Записан
MaxoBik
Гость
« Ответ #4 : Сентябрь 07, 2015, 20:27 »

А где само создание объека?
Вы создали указатель, указывающий куда попало.
Я опустил эту часть, m_colorManager член класса, в конструкторе я его объявляю, там все в порядке, проблема не в этом.
Вот еще что:
Код:
qDebug() << m_colorManager->metaObject()->indexOfSignal("valueChanged(QtProperty*,QColor)");
Выводит 9.
Код:
	for(int i = metaObject->methodOffset(); i < metaObject->methodCount(); ++i)
qDebug() <<  QString::fromLatin1( metaObject->method(i).methodSignature() );
Цитировать
"valueChanged(QtProperty*,QColor)"
"setValue(QtProperty*,QColor)"
"slotIntChanged(QtProperty*,int)"
"slotPropertyDestroyed(QtProperty*)"
Не пойму, что за мистика такая.
« Последнее редактирование: Сентябрь 07, 2015, 20:39 от MaxoBik » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #5 : Сентябрь 07, 2015, 20:35 »

В строке коннекта уберите имена переменных из аргументов сигнала и слота.
Записан
MaxoBik
Гость
« Ответ #6 : Сентябрь 07, 2015, 20:36 »

В строке коннекта уберите имена переменных из аргументов сигнала и слота.
Черт, точно, спасибо, привык уже на новом стиле подключатся.
« Последнее редактирование: Сентябрь 07, 2015, 20:38 от MaxoBik » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.268 секунд. Запросов: 20.