Название: Qml динамический компонент Отправлено: BuRn от Февраль 08, 2014, 11:05 Добрый день. Подскажите, какие есть способы, разместить элемент по верх главного qml файла и элементов вместе с ними. Требуется сделать что-то типа MessageBox, который будет перекрывать все остальные компоненты главного qml файла. Создание производиться из сишника
Название: Re: Qml динамический компонент Отправлено: OKTA от Февраль 08, 2014, 14:18 Так просто создаешь еще один QDeclarativeView, у которого source и есть твой messageBox! Я так делаю)
Название: Re: Qml динамический компонент Отправлено: BuRn от Февраль 08, 2014, 14:40 Так просто создаешь еще один QDeclarativeView, у которого source и есть твой messageBox! Я так делаю) Дык когда я сделаю setSource разве он не перекроет/затрет весь уже отрисованный контент? Название: Re: Qml динамический компонент Отправлено: OKTA от Февраль 08, 2014, 15:30 таки чем он перекроет? это же будет отдельное окно - задай ему координаты при создании и все будет ок)
Название: Re: Qml динамический компонент Отправлено: BuRn от Февраль 08, 2014, 16:11 таки чем он перекроет? это же будет отдельное окно - задай ему координаты при создании и все будет ок) Честно говоря, всегда, когда писал на QML, считал что в программе написанной на QML должно быть одно окно... Пасибо, попробуюНазвание: Re: Qml динамический компонент Отправлено: vregess от Февраль 08, 2014, 16:46 Так просто создаешь еще один QDeclarativeView, у которого source и есть твой messageBox! Я так делаю) Вообще странный совет. Можно просто создать прозрачный слой на всю сцену поверх всех элементов (меняй z-index), который будет перехватывать события мыши. А поверх него свой диалог. Когда я делал, то были проблемы с MouseArea - некоторые события передавали ниже, точно уже не помню. Поэтому я писал свой класс: Layer.qml: Код: import QtQuick 2.0 MouseBlocker.cpp: Код: #include "gui/MouseBlocker.h" Ну всякие мелочи я не описываю, навроде как создать и показать из с++. Название: Re: Qml динамический компонент Отправлено: OKTA от Февраль 08, 2014, 17:03 Если создавать внутри главное сцены, то за пределы сцены объект не вылезет, а если отдельным, то будет полноценное окошко самостоятельное. Очень удобно использовать для красивых всплывающих сообщений в трее и для тех же messagebox, Если надо показать его, а основное приложение свернуто.
Название: Re: Qml динамический компонент Отправлено: vregess от Февраль 08, 2014, 17:20 Возможно при некоторых обстоятельствах отдельное окно и будет удобнее. Просто мой ход мыслей схож с ТС
Честно говоря, всегда, когда писал на QML, считал что в программе написанной на QML должно быть одно окно Название: Re: Qml динамический компонент Отправлено: OKTA от Февраль 08, 2014, 17:50 не стоит себя ограничивать такими условностями ;)
Название: Re: Qml динамический компонент Отправлено: BuRn от Февраль 08, 2014, 21:11 не стоит себя ограничивать такими условностями ;) Вероятно, в вашем случае, можно обломаться с прозрачностью... Свойства opacity главного ректангла того же MessageBox уже не установить... Название: Re: Qml динамический компонент Отправлено: OKTA от Февраль 09, 2014, 00:12 Почему не установить? покажите код-пруф))
Название: Re: Qml динамический компонент Отправлено: BuRn от Февраль 09, 2014, 00:27 Почему не установить? покажите код-пруф)) Я предположил, ибо будет новое окно... Название: Re: Qml динамический компонент Отправлено: OKTA от Февраль 09, 2014, 01:54 Все там устанавливается, попробуй))) На личном опыте проверено!)
Название: Re: Qml динамический компонент Отправлено: BuRn от Февраль 09, 2014, 14:07 Все там устанавливается, попробуй))) На личном опыте проверено!) В любом случае спасибо, будем тестить и проверять как оно на деле работает |