Russian Qt Forum

Qt => Qt Quick => Тема начата: Fregloin от Февраль 08, 2014, 19:36



Название: Пытаюсь вникнуть в QML - не пойму как связать С++ со сценой
Отправлено: Fregloin от Февраль 08, 2014, 19:36
Привет. Создал проект QtQuickControls 1.1.
Получил такой код main.cpp
Код:
#include "qtquick2controlsapplicationviewer.h"

int main(int argc, char *argv[])
{
    Application app(argc, argv);

    QtQuick2ControlsApplicationViewer viewer;
    viewer.setMainQmlFile(QStringLiteral("qml/qml1/main.qml"));
    viewer.show();

    return app.exec();
}

А что дальше? Как получить контекст, как найти элементы на сцене и т.п.?? Я в этом полный ноль. Хелп прочитал, просмотрел примеры, но целого решения от А до Я так и не нашёл. :( Просветите пожалуйста. Ориентируюсь на Андроид.
+ Как обрабатывать несколько окон в QML?


Название: Re: Пытаюсь вникнуть в QML - не пойму как связать С++ со сценой
Отправлено: BuRn от Февраль 08, 2014, 21:09
Цитировать
QtQuick2ControlsApplicationViewer
Если вы разбираетесь хотя бы в C++, то это наследник от класса QQuickView.На сколько я понял его ввели в 5.2. Посмотрите доки по этому классу, класс имеет метод rootContext.Дальше курите в сторону QQmlEngine, его вроде бы добавили тоже в 5.2, точнее переименовали


Название: Re: Пытаюсь вникнуть в QML - не пойму как связать С++ со сценой
Отправлено: Fregloin от Февраль 15, 2014, 11:03
"хотя бы" разбираюсь, но вопрос стоит так - как разрабатывать многооконные приложения с QML. Как сделать дочерние окна? Я так понимаю основное окно по шаблону делает креатор, остальные окна руками?


Название: Re: Пытаюсь вникнуть в QML - не пойму как связать С++ со сценой
Отправлено: BuRn от Февраль 15, 2014, 11:23
"хотя бы" разбираюсь, но вопрос стоит так - как разрабатывать многооконные приложения с QML. Как сделать дочерние окна? Я так понимаю основное окно по шаблону делает креатор, остальные окна руками?
В моем понимании, у программы на QML должно быть одно окно, где-то мы тут это уже обсуждали. Никто не мешает динамически создавать Retangle-ы. Накладывать их поверх главного окна, тем самым получая как бы второе окно...
Да все остальные окна если вы уж так хотите, придется реализовывать руками


Название: Re: Пытаюсь вникнуть в QML - не пойму как связать С++ со сценой
Отправлено: Fregloin от Февраль 16, 2014, 11:38
впринципе я так и понял, судя по примерам, я видел везде только одноэкранные программы, главное окно которых содается в main. Т.е. к примеру есть приложение на андроид. У него есть главное окно с контентом, нужно показать окно настроек - надо рисовать другой QML элемент (который дупустим в отдедльном файле и являет собой полноценное окно с настройками) над главным окном? После widget ориентированного подхода не совсем привычно.


Название: Re: Пытаюсь вникнуть в QML - не пойму как связать С++ со сценой
Отправлено: BuRn от Февраль 16, 2014, 14:57
впринципе я так и понял, судя по примерам, я видел везде только одноэкранные программы, главное окно которых содается в main. Т.е. к примеру есть приложение на андроид. У него есть главное окно с контентом, нужно показать окно настроек - надо рисовать другой QML элемент (который дупустим в отдедльном файле и являет собой полноценное окно с настройками) над главным окном? После widget ориентированного подхода не совсем привычно.
Ну да я стараюсь придерживаться именно этого принципа, хотя чем больше программа, тем больший геморой


Название: Re: Пытаюсь вникнуть в QML - не пойму как связать С++ со сценой
Отправлено: Alex Custov от Февраль 16, 2014, 22:41
надо рисовать другой QML элемент (который дупустим в отдедльном файле и являет собой полноценное окно с настройками) над главным окном? После widget ориентированного подхода не совсем привычно.

Есть компонент Window, см. http://qt-project.org/doc/qt-5.1/qtquick/qml-qtquick-window2-window.html . Поведение диалога придётся эмулировать: задавать modality и эмулировать accepted/rejected.


Название: Re: Пытаюсь вникнуть в QML - не пойму как связать С++ со сценой
Отправлено: Fregloin от Февраль 17, 2014, 11:05
Это уже интереснее, спасибо.