Size: a a a

2021 June 03

S

Sergey eSKon in Qt
Это откуда вы такое знаете? Я бы почитал этот источник
источник

S

Sergey eSKon in Qt
Это получается у вас, что каждый quickwidget работает в собственной qmlengine... я не спорю, я лично не использовал, ни квиквью, ни квиквиджет, но странно
источник

МК

Мгер Карапетян... in Qt
так я говорю что вьювер и виджет имеет ссылку на qqmlengine. И в теории можно отдельно не создавая QQmlEngine создать вьювер и работать с ним
источник

S

Sergey eSKon in Qt
Ну да, судя по докам так и есть. Достаточно квиквью
источник

S

Sergey eSKon in Qt
Ну в последней кнопке у вас return не дает выполнить show
источник

МК

Мгер Карапетян... in Qt
при повторном нажатии выполняется шоу и появляется окно пустышка
источник

S

Sergey eSKon in Qt
Да, понятно, но странное решение. Почему бы сразу после создания не открыть. А qml в дебаг ругательств не сваливает? Может там загрузка чего то не прошла?
источник

МК

Мгер Карапетян... in Qt
так оно сразу открывается без всякого шоу... то есть в итоге вьюшка и виджет ссылается на окно пустышку а не на нужное окно.
источник

МК

Мгер Карапетян... in Qt
по второй кнопке окно на мгновение появляется и исчезает
источник

МК

Мгер Карапетян... in Qt
Нашел в выводе ругательства:
QQuickView / QQuickWidget does not support using windows as a root item.

If you wish to create your root window from QML, consider using QQmlApplicationEngine instead.

Продолжу иследовать уже QQmlApplicationEngine
источник

S

Sergey eSKon in Qt
а, ну так логично же. Раз он сам создаёт engine, то, очевидно и window сам создаёт и в него уже помещает виджет или вью
источник

М

Макс in Qt
Добрый день! Подскажите, как запустить приложение с qml на устройстве, которое не поддерживает OpenGl 2.0?
источник

МК

Мгер Карапетян... in Qt
я исходил из опыта работы с виджетами, что можно создать окно любого виджета
QPushButton btn;
btn.show();
но видимо с qml иначе
источник

M

Mr.Mait in Qt
Пробуй так
QApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);
источник

МК

Мгер Карапетян... in Qt
ничего путного или работающего не нашел. Через QQmlApplicationEngine тоже не получилось получить ссылку на окно. Видимо буду работать через QQmlEngine. ((
источник

S

Sergey eSKon in Qt
не понял, как не получилось? А как вы делали?
источник

МК

Мгер Карапетян... in Qt
void MainWindow::on_btnQQmlApplicationEngine_clicked() {
   if (!_qmlAppEngine) {
       _qmlAppEngine = new QQmlApplicationEngine;
       _qmlAppEngine->addImportPath(IMPORT_PATH);
       _qmlAppEngine->rootContext()->setContextProperty("appEngine", &appEngine);
       _qmlAppEngine->load(URL_MAIN);
       connect(_qmlAppEngine, &QQmlApplicationEngine::objectCreated,
                        this, [this] (QObject *obj, const QUrl &objUrl) {
           qDebug() << "obj" << obj;
           if (!obj && MainWindow::URL_MAIN == objUrl)
               QCoreApplication::exit(-1);
       }, Qt::QueuedConnection);
       return;
   }
}
Так создаю окно. А дальше как обратиться к окну с командой закрытия, как получить событие закрытие окна?
Думал что получу ссылку на объект через сигнал objectCreated, но сигнал не испускается
источник

S

Sergey eSKon in Qt
я тут виже только создание qmlapplicationengine - а где окно то?
источник

МК

Мгер Карапетян... in Qt
_qmlAppEngine->load(URL_MAIN); — отурывает окно программы
источник

S

Sergey eSKon in Qt
это просто загрузка qml
источник