Пользовательский полноэкранный QDialog с QQuickWidget внутри, последний не будет правильно масштабироваться (Android) - PullRequest
0 голосов
/ 17 июня 2020

Описание: Цель состоит в том, чтобы показать настраиваемое диалоговое окно (без границ, без кнопок по умолчанию, содержимое должно предоставляться QML), желательна прозрачность и диалоговое окно со встроенным QML должно показать во весь экран. Содержимое QML, отображаемое в диалоговом окне, должно правильно масштабироваться до полноэкранного режима.

Реализация (конструктор) настраиваемого диалогового окна:

CIdentityBox::CIdentityBox(QWidget *parent): QDialog(parent)
{
   setAttribute(Qt::WA_TranslucentBackground);
       QQuickWidget* content = new QQuickWidget();
       content->setParent(this);
        content->rootContext()->setContextProperty(QStringLiteral("applicationData"), this);
         content->setResizeMode(QQuickWidget::SizeRootObjectToView);
        content->setSource(QStringLiteral("qrc:/dialog.qml"));
       content->setClearColor(Qt::transparent);

}

QML-файл:

Item {
    //objectName: "topographySeries"
    height: 750
   width:360
//other stuff
}

Я показываю диалог с вызовом dialog-> showFullScreen ();

Текущее состояние: Теперь, в диалоговом окне показано, что пространство, занимаемое QDialog, действительно полноэкранное (если я отключу WA_TranslucentBackground, весь экран станет белым), НО внутренний (?) QQuickWidget не масштабируется вообще. Несмотря на то, что SizeRootObjectToView установлен.

Идеи? В QML, если я изменяю высоту / ширину по умолчанию (?) Или устанавливаю anchors.fill = parent, QQuickWidget вообще не отображается. Идеи?

Есть какой-нибудь хакерский способ выполнить sh это? Не обязательно быть чистым, я уже потратил на это слишком много времени.

Вопрос: как сделать так, чтобы внутренний QQuickWidget занимал все пространство QDialog. Другие подходы приветствуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...