Передача сигнала из C++ в Qt, При подключении библиотек вылезает куча ошибок |
Здравствуйте, гость ( Вход | Регистрация )
Передача сигнала из C++ в Qt, При подключении библиотек вылезает куча ошибок |
Norad |
10.7.2014, 10:08
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 10.7.2014 Пользователь №: 4183 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем доброго времени суток! Проблема с передачей сигналов в QML. Читал темы, вроде бы сделал все, как положено. Но начинают лезть ошибки при подключении библиотек, необходимых для работы qmlRegisterType. Код программы представлен ниже.
MainWindow.h
qml_class.h
main.cpp
mainwindow.cpp
qml_class.cpp
main.qml
Что может быть не так? Заранее спасибо за ответы!) PS: в программе требуется по сигналу слайдера изменять размер прямоугольников в QML. Вот, кстати, оповещение об ошибке C:\My_projects\project_test\mainwindow.cpp:-1: ошибка: undefined reference to `_imp___ZN11QQmlPrivate30qdeclarativeelement_destructorEP7QObject' |
|
|
Iron Bug |
10.7.2014, 12:12
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
я пока вижу, что у тебя ui удаляется до ua, в то время как ua подключен к layout внутри ui. это вряд ли имеет отношение к ошибкам компиляции, но это ошибка программы.
а ошибку компиляции, скорее всего, вызывает невиртуальный деструктор в твоём классе MainWindow. Сообщение отредактировал Iron Bug - 10.7.2014, 12:18 |
|
|
Norad |
11.7.2014, 7:36
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 10.7.2014 Пользователь №: 4183 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо, поправил. Еще подключил недостающие дериктивы препроцессора(QT += core gui declarative qml quick) в проект, запустил qmake, пересобрал проект. Ошибки подключаемых библиотек исчезли. Но появилась новая проблема. При региcтрации класса через qmlRegisterType<TestClass>("ModuleName", 1, 0, "TypeName");, и подключении этого класса через import "ModuleName" 1.0 в QML файл постоянно вылезает ошибка, что ModuleName is not installed!!! Казалось бы простейшую вещь делаю, но столько проблем возникает...Что делать, пока не сообразил.
|
|
|
Norad |
11.7.2014, 9:03
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 10.7.2014 Пользователь №: 4183 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вот, что пишет: qrc:/main.qml:2:1: module "Modul" is not installed
|
|
|
Trisch |
12.7.2014, 14:42
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: 0 |
Я в вашем примере не нашел как вы пользуетесь qml_class *interface.
Дело может быть в том, что qmlRegisterType<TestClass>("ModuleName", 1, 0, "TypeName"); создает объект класса TestClass. И чтобы им в последствии воспользоваться надо его как то получить. Я к примеру, делал так. При инициализации класса TestClass посылается сигнал уведомляющий о его создании. После чего QObject::findChild<TestClass *>() отлавливает сигнал и возвращает объект класса который послал данный сигнал. После чего полученным объектом можно уже пользоваться. |
|
|
Текстовая версия | Сейчас: 29.11.2024, 1:57 |