0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 137
1

Доступ к функциям C++ из QML файла

04.06.2015, 12:31. Показов 1085. Ответов 4
Метки нет (Все метки)

Добрый день!
Иниациализация QML объекьта
C++ (Qt)
1
2
3
4
5
 m_authQML = new QQuickView();
    m_authQML->setSource(QUrl("qrc:/Authorization.qml"));
    m_authQML->setResizeMode(QQuickView::SizeRootObjectToView);
    m_rootQML = m_authQML->rootObject();
    m_authQML->rootContext()->setContextProperty("window", this);
функция, которую необходимо вызвать объявлена в h файле
C++ (Qt)
1
Q_INVOKABLE void connectButtonClickQML();
вызов функции в QML файле (если я правильно понял то отдельно определять property window не нужно?)
C++ (Qt)
1
connectButton.clicked.connect(window.connectButtonClickQML());
Qt ругается
qrc:/Authorization.qml:84: ReferenceError: window is not defined

Добавлено через 26 минут
если действовать в обратную строну и пытаться из cpp получить данные QML, вот так
C++ (Qt)
1
2
3
QObject* loginObj = m_rootQML->findChild<QObject*>("login");
QObject* passObj = m_rootQML->findChild<QObject*>("password");
QObject* serverObj = m_rootQML->findChild<QObject*>("server");
то получим нулевые указатели, хотя данные id прописанны в QML
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
TextField {
        id: login
        x: 75
        y: 53
        width: 216
        height: 25
        placeholderText: qsTr("")
    }
 
    TextField {
        id: password
        x: 75
        y: 90
        width: 216
        height: 25
        placeholderText: qsTr("")
    }
 
    ComboBox {
        id: server
        x: 75
        y: 15
        width: 216
        height: 27
    }
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2015, 12:31
Ответы с готовыми решениями:

Доступ к функциям QML
У меня есть описанная модель: ListModel{ id: mainlist ListElement { ...

Доступ к функциям Flash файла из C# программы
Есть галлерея на flash &quot;3d wall&quot;, хочу из программы написанной на C# организовать поиск по...

Доступ к функциям унаследованного класса
Не знаю как в двух словах описать проблему поэтому если что, модераторы поправьте название темы. У...

Доступ к API функциям Firebird из 1С
Здравствуйте уважаемые знатоки Firebird! Мне необходимо из 1С использовать API-функции Firebird...

4
187 / 172 / 38
Регистрация: 03.08.2012
Сообщений: 596
04.06.2015, 12:48 2
Цитата Сообщение от tohtarov_ufa Посмотреть сообщение
то получим нулевые указатели, хотя данные id прописанны в QML
Не удивительно. Потому что вы ищите по objectName'у, а он не указан у вас
1
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 137
04.06.2015, 12:57  [ТС] 3
спасибо большое, это исправил. А что насчет window? не подскажите
0
187 / 172 / 38
Регистрация: 03.08.2012
Сообщений: 596
04.06.2015, 13:03 4
Лучший ответ Сообщение было отмечено tohtarov_ufa как решение

Решение

Попробуйте поставить строку m_authQML->rootContext()->setContextProperty("window", this);
до строки m_authQML->setSource(QUrl("qrc:/Authorization.qml"));
1
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 137
04.06.2015, 13:16  [ТС] 5
да, все верно. большое спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2015, 13:16

Доступ к функциям дочернего окна
из одного окна открывается другое окно через window.open в которе грузиться страница из инета. в...

Доступ к функциям за пределами API
Вечер добры... Занимаюсь написанием торгового бота, для биржи, и столкнулся с проблемой - в API...

Доступ к функциям объявленных в модулях MS Access
Доброго времени суток. Создал проект в Visual studio, подключил к нему БД *.mdb (MS access)....

Закрыли доступ к программам и многим функциям
Здравствуйте. У меня возникла проблема. На работе мне открыли новый домен в Windows 7 и закрыли...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.