![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Norad |
![]() ![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 10.7.2014 Пользователь №: 4183 Спасибо сказали: 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 |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
я пока вижу, что у тебя ui удаляется до ua, в то время как ua подключен к layout внутри ui. это вряд ли имеет отношение к ошибкам компиляции, но это ошибка программы.
а ошибку компиляции, скорее всего, вызывает невиртуальный деструктор в твоём классе MainWindow. Сообщение отредактировал Iron Bug - 10.7.2014, 12:18 |
|
|
Norad |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 10.7.2014 Пользователь №: 4183 Спасибо сказали: 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 |
![]()
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 10.7.2014 Пользователь №: 4183 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вот, что пишет: qrc:/main.qml:2:1: module "Modul" is not installed
|
|
|
Trisch |
![]()
Сообщение
#5
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 379 Регистрация: 30.1.2012 Из: Запорожье Пользователь №: 3169 Спасибо сказали: 24 раз(а) Репутация: ![]() ![]() ![]() |
Я в вашем примере не нашел как вы пользуетесь qml_class *interface.
Дело может быть в том, что qmlRegisterType<TestClass>("ModuleName", 1, 0, "TypeName"); создает объект класса TestClass. И чтобы им в последствии воспользоваться надо его как то получить. Я к примеру, делал так. При инициализации класса TestClass посылается сигнал уведомляющий о его создании. После чего QObject::findChild<TestClass *>() отлавливает сигнал и возвращает объект класса который послал данный сигнал. После чего полученным объектом можно уже пользоваться. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 16.2.2025, 22:10 |