Сделайте независимое всплывающее окно в Qt быстрым

#qt #qml

Вопрос:

У меня есть приложение, которое невелико по ширине и высоте, я хочу, чтобы при нажатии кнопки отображалось всплывающее окно. Проблема в том, что всплывающее окно больше, чем окно приложения, и когда я его открываю, оно уменьшается и выглядит странно

апп

f572d9c0-7ff4-4797-b5de-84c68b456dc4-изображение.png

ПРИЛОЖЕНИЕ С ВСПЛЫВАЮЩИМ ОКНОМ

7824844e-c884-484a-9f33-e14fb00c2d73-изображение.png

ВСПЛЫВАЮЩЕЕ СОДЕРЖИМОЕ В КОНСТРУКТОРЕ

24317906-ffa6-4132-bf03-aac773542d7f-изображение.png

Как я могу сделать всплывающее окно независимым от окна приложения, как это:

33c43137-9827-4f18-9afc-8c49c3c323c6-изображение.png

Или есть ли лучший подход, чем использование всплывающего окна, было бы неплохо, если бы я мог перемещать всплывающее окно/окно. Он все еще должен быть каким-то образом связан с основным приложением, потому что оттуда он получает данные

Ответ №1:

Всплывающее окно в QML отображается в виде слоя поверх родительского окна, поэтому оно не может быть больше родительского окна. Если вам нужно отдельное окно верхнего уровня, вместо этого следует использовать окно или диалоговое окно.

Комментарии:

1. Dialog это Popup .

2. @GrecKo это зависит от того, какой из них вы импортируете.

Ответ №2:

Я с этим разобрался. Я инкапсулировал компонент, который хотел показать в окне, и создал его с помощью Qt.createComponent()

 var playListComponent = Qt.createComponent("CustomPlaylist.qml") var window = playListComponent.createObject(rootWindow) window.show()  

Корневым элементом CustomPlaylist.qml является Window

Нипси